从mongodb datetime查询中获取星期几

从mongodb datetime查询中获取星期几,mongodb,pymongo,Mongodb,Pymongo,我正在构建一个数据库,在那里我可能想查询一周中的某一天。是否可以使用mongodb在datetime(或utc时间戳)字段中查询一周中的天数 有点像;获取每个日期时间在星期一的对象 如果不可能,那么替代方案似乎在集合中创建虚拟变量,显示一周中的哪一天。我最好只查询datetime对象,因为这样会使数据库更小 Pymongo可以将Mongo BSON时间戳字段作为python日期时间返回: 从那里,您可以调用datetime.date.weekday() Pymongo可以将Mongo BSON时

我正在构建一个数据库,在那里我可能想查询一周中的某一天。是否可以使用mongodb在datetime(或utc时间戳)字段中查询一周中的天数

有点像;获取每个日期时间在星期一的对象


如果不可能,那么替代方案似乎在集合中创建虚拟变量,显示一周中的哪一天。我最好只查询datetime对象,因为这样会使数据库更小

Pymongo可以将Mongo BSON时间戳字段作为python日期时间返回:

从那里,您可以调用
datetime.date.weekday()

Pymongo可以将Mongo BSON时间戳字段作为python日期时间返回:

从那里,您可以调用
datetime.date.weekday()

我可以想到三种解决方案:

  • 您的解决方案是:创建一个额外的“day\u of_week”字段(int或string),然后查询该字段而不是datetime字段
  • 查询集合中的所有内容,然后在客户端按星期几筛选结果
  • 使用$where,传递一个调用date.getDay()的javascript函数。例如,
    {$where:function(){返回this.date.getDay()==5;}}
    用于获取星期五的每个日期

  • 解决方案#2将在客户端pymongo中调用
    datetime.date.weekday()。这种方法的缺点是,集合中的每个文档最终都会通过网络发送,这可能会增加不必要的网络负载。但是,它比#1好,因为它更节省空间,而且您没有重复的信息来保持同步。解决方案#3没有这两个问题,但$where速度较慢,因为它需要服务器创建JavaScript执行上下文,并且无法使用索引。

    我可以想到三种解决方案:

  • 您的解决方案是:创建一个额外的“day\u of_week”字段(int或string),然后查询该字段而不是datetime字段
  • 查询集合中的所有内容,然后在客户端按星期几筛选结果
  • 使用$where,传递一个调用date.getDay()的javascript函数。例如,
    {$where:function(){返回this.date.getDay()==5;}}
    用于获取星期五的每个日期

  • 解决方案#2将在客户端pymongo中调用
    datetime.date.weekday()。这种方法的缺点是,集合中的每个文档最终都会通过网络发送,这可能会增加不必要的网络负载。但是,它比#1好,因为它更节省空间,而且您没有重复的信息来保持同步。解决方案#3没有这两个问题,但是$where速度很慢,因为它需要服务器创建JavaScript执行上下文,并且无法使用索引。

    与根据您尝试执行的操作相关,聚合框架有一个函数()。与根据您尝试执行的操作相关,聚合框架为此提供了一个函数()。