我正在构建一个数据库,我可能想查询一周中的某一天。是否可以使用mongodb在datetime(或utc timestamp)字段中查询一周中的天数?
喜欢的东西;获取每个具有日期时间的对象。
如果不可能,则替代方案似乎在集合中创建虚拟变量,以显示一周中的哪一天。最好我只想查询datetime对象,因为这会使数据库更小。
答案 0 :(得分:1)
我能想到三种解决方案:
{$where: function () { return this.date.getDay() == 5; }}
用于获取星期五的每个日期。解决方案#2会在客户端的pymongo中调用datetime.date.weekday()
。此方法的缺点是集合中的每个文档最终都将通过线路发送,这可能会增加不必要的网络负载。然而,它比#1更好,因为它更节省空间,并且您没有重复的信息来保持同步。解决方案#3没有这些问题,但$ where慢,因为它要求服务器创建JavaScript执行上下文而不能使用索引。
答案 1 :(得分:0)
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