我正在构建一个数据库,我可能想在其中查询一周中的某一天。是否可以使用 mongodb 在日期时间(或 utc 时间戳)字段中查询星期几?
就像是; 获取日期时间为星期一的每个对象。
如果不可能,那么替代方法似乎会在集合中创建虚拟变量,以显示它是星期几。最好我只想为此查询 datetime 对象,因为这会使数据库更小。
我能想到的解决方案有以下三种:
{$where: function () { return this.date.getDay() == 5; }}
用于获取星期五的每个日期。解决方案#2 会datetime.date.weekday()
在客户端调用 pymongo。这种方法的缺点是集合中的每个文档最终都将通过网络发送,这可能会增加不必要的网络负载。但是,它比 #1 更好,因为它更节省空间,并且您没有重复的信息来保持同步。解决方案#3 没有这些问题,但是 $where 很慢,因为它需要服务器创建 JavaScript 执行上下文并且不能使用索引。
Pymongo 可以将 Mongo BSON 时间戳字段作为 python 日期时间返回:http: //api.mongodb.org/python/current/api/bson/timestamp.html
从那里你可以调用datetime.date.weekday()
http://docs.python.org/2/library/datetime.html#datetime.date