Java mongodb按查询范围过滤的问题
我对mongodb有意见。有人能解释一下为什么这样做(给出了一些结果): 这不起作用(返回零):Java mongodb按查询范围过滤的问题,java,mongodb,spring-data,range,Java,Mongodb,Spring Data,Range,我对mongodb有意见。有人能解释一下为什么这样做(给出了一些结果): 这不起作用(返回零): 非常感谢。您可能需要检查这种类型,以了解为什么您实际上不能在查询中直接使用纪元时间 以下是查询日期的有趣部分: 根据标准,两者应相等: mongo db提供了各种方法来返回日期,可以是字符串,也可以是日期对象: 方法,该方法以字符串形式返回当前日期 新的Date()构造函数,它使用ISODate()包装返回日期对象 ISODate()构造函数,使用ISODate()包装返回日期对象 并使用ISO
非常感谢。您可能需要检查这种类型,以了解为什么您实际上不能在查询中直接使用纪元时间 以下是查询日期的有趣部分: 根据标准,两者应相等: mongo db提供了各种方法来返回日期,可以是字符串,也可以是日期对象:
- 方法,该方法以字符串形式返回当前日期
- 新的Date()构造函数,它使用ISODate()包装返回日期对象
- ISODate()构造函数,使用ISODate()包装返回日期对象
ISODate
{“$date”:“ISO-8601字符串”}
在需要严格的JSON表示时可以使用
因此,您可能需要根据预期的格式检查并更新代码,以使其按预期工作。尝试以下查询
{ "$date" : { "$numberLong" : "<dateAsMilliseconds>" } }
{“$date”:{“$numberLong”:“}
如MongoDB文档中所述,而不是仅与$date进行比较 但问题是,我用的是java,这是独立于语言的。您使用的是mongodb查询语言,它适用于所有编程语言。
db.getCollection('test').find({"reportedOn" : { "$gte" : { "$date" : 1551398400000 }, "$lt" : { "$date" : 1554073200000 } } });
{ "$date" : { "$numberLong" : "<dateAsMilliseconds>" } }