Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mongodb按查询范围过滤的问题_Java_Mongodb_Spring Data_Range - Fatal编程技术网

Java mongodb按查询范围过滤的问题

Java mongodb按查询范围过滤的问题,java,mongodb,spring-data,range,Java,Mongodb,Spring Data,Range,我对mongodb有意见。有人能解释一下为什么这样做(给出了一些结果): 这不起作用(返回零): 非常感谢。您可能需要检查这种类型,以了解为什么您实际上不能在查询中直接使用纪元时间 以下是查询日期的有趣部分: 根据标准,两者应相等: mongo db提供了各种方法来返回日期,可以是字符串,也可以是日期对象: 方法,该方法以字符串形式返回当前日期 新的Date()构造函数,它使用ISODate()包装返回日期对象 ISODate()构造函数,使用ISODate()包装返回日期对象 并使用ISO

我对mongodb有意见。有人能解释一下为什么这样做(给出了一些结果):

这不起作用(返回零):


非常感谢。

您可能需要检查这种类型,以了解为什么您实际上不能在查询中直接使用纪元时间

以下是查询日期的有趣部分:

根据标准,两者应相等:

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>" } }