我遇到了mongodb的问题。任何人都可以解释我为什么这样做(给出一些结果):
db.getCollection(‘test’)。find({“reportedOn”:{“$ gte”:ISODate(“2019-03-01T01:20:00”),“$ lt”……
您可能需要检查这种情况 相关主题 了解为什么你实际上不能直接在查询中使用纪元时间。
这是查询日期的有趣部分:
根据 mongo Shell中的数据类型 两者都应该是等价的:
mongo db提供了各种方法来返回日期,可以是字符串,也可以是Date对象: Date()方法,以字符串形式返回当前日期。 new Date()构造函数,它使用ISODate()包装器返回Date对象。 ISODate()构造函数,它使用ISODate()包装器返回Date对象。
mongo db提供了各种方法来返回日期,可以是字符串,也可以是Date对象:
和使用 ISODate 应该仍然返回Date对象 。
ISODate
{"$date": "ISO-8601 string"} 可以在需要严格的JSON表示时使用。
{"$date": "ISO-8601 string"}
所以你可能想检查一下 所有ISO-8601可用格式 并根据预期的格式更新您的代码,以使其按预期工作。
请尝试以下查询
{ "$date" : { "$numberLong" : "<dateAsMilliseconds>" } }
如MongoDB文档中所述,而不是仅与$ date进行比较。 链接