我正在将python 3.7和pymongo 3.7.2软件包一起使用。我有一个查询来计算匹配某些条件的文档数,其中日期字段(在查询“ tpep_pickup_datetime”中)在某些限制之间。下面的MongoDB查询在Mongo Shell中运行良好,并且python代码设置为0000小时至0100小时之间:
countRequired = collection.count_documents( {"tpep_pickup_datetime": {"$gte": "2018-06-01 00:00:00", "$lt": "2018-06-01 01:00:00"}} )
但是现在我需要使用一个字符串变量指定上面使用的时间范围,我将从整个循环的列表中选取一个变量。因此,我想使用管道变量来构建查询。然后像我经常对集合类型查询那样使用管道变量。我想做的是这样:
1)管道= []。例如,循环的一次迭代的管道将构建为[{“ tpep_pickup_datetime”:{“ $ gte”:“ 2018-06-01 00:00:00”,“ $ lt”:“ 2018-06-01 01:00:00“}}],下一个循环为[{” tpep_pickup_datetime“:{” $ gte“:” 2018-06-01 01:00:00“,” $ lt“:” 2018- 06-01 02:00:00“}}],因此每24小时循环一次。
2)接下来,使用管道变量,如下所示:
countRequired = collection.count_documents( pipeline )
但是我收到一条错误消息:“ OperationFailure:匹配过滤器必须是对象中的表达式”。很抱歉,追溯历史确实很长,无法将其粘贴到此处。
感谢和问候, rbewoor