【发布时间】:2019-08-08 08:56:34
【问题描述】:
我在 Mongo 查询中有这段代码:
db.getCollection('my_collection').aggregate([
{
'$match':{
'current.date':{
$gt:new Date(new Date(new Date().setDate(new Date().getDate())).setHours(00,00,00))
}
}
}
])
我将查询读入字符串,当我尝试解析它时 JSONReader 返回此错误:
org.bson.json.JsonParseException: JSON reader expected an integer or a string but found 'new'.
有没有办法在严格模式下解析"new Date(new Date(new Date().setDate(new Date().getDate())).setHours(00,00,00))"?
提前致谢!
问候。
【问题讨论】:
-
除了您的查询需要是 json 并且因此
' $gt'的值需要是一个字符串之外,我会进一步假设 MongoDB 不能直接使用 Java 代码.此外,您想对所有这些新日期对象(我数 4)做什么? -
你好托马斯!谢谢你回复我。我试图获取日期大于我当前日期且小时数为 0 的日期。例如,对于今天,我需要知道日期大于 (08/08/2019:00,00,00) 的设备跨度>
-
你想在JAVA中创建新的DATE并传入查询还是想在QUERY中创建新的DATE
-
在 Java 中我做了这样的事情: Document myDocument = Document.parse(myRowQuery);其中 myRowQuery 是一个包含我所有 Mongo 查询的字符串
-
如果
new Date(new Date(new Date().setDate(new Date().getDate())).setHours(00,00,00))应该是 Java,那么它有两个错误: (1)setDate()返回 void,并且您不能将 void 传递给new Date()。 (2)setHours()接受 1 个参数,但您试图为其提供三个参数。
标签: java mongodb date mongodb-query aggregation-framework