【发布时间】:2016-02-15 20:37:37
【问题描述】:
我正在尝试检查 Mongo 中两个日期之间是否存在任何日期(我正在使用 pymongo)。
id_categoria = 885
min_date = parse("2015-11-01")
max_date = parse("2015-11-20")
query_mongo = {"categoryId" : id_categoria,"dataDate":{"$lte":max_date,"$gte":min_date}}
print colLastData.find(query_mongo,projection={'data':0}).count()
打印返回这两个日期之间的数据总和,例如如果我在 2015-11-01 和 2015-11-20 之间只有 10 天,打印将返回 10。但我需要的是打印返回错,因为我有 10 天没有数据。
2015-11-01 至 2015-11-10:有数据!
2015-11-11 到 2015-11-20:没有数据!
我用这个但是是一样的东西:
print colLastData.find(query_mongo,projection={'data':0}).count() > 0
如果范围在 Mongo 中只有一天,打印将返回 True,这是错误的,因为我想要的是仅当 mongo 在这几天之间有数据时才返回 True!
更新 1: 我觉得这个查询适用于 OR。
query_mongo = {"categoryId" : id_categoria,"dataDate":{"$lte":max_date,"$gte":min_date}}
因为在这两个日期之间显示“ANY”数据,但我需要的是“AND”。如果某一天没有数据,则查询必须返回 False。
【问题讨论】:
-
我认为您的英语正在下降,您的意思是说您希望范围内的“每天”从您的查询中返回结果以使条件为真。对吗?
标签: python mongodb mongodb-query pymongo aggregation-framework