编辑 - 上下文:我正在使用 Talend ETL 工具,并在查询中使用 ISODate 或 Date 或 new Date,如下所示失败并出现错误,因此我需要解决方法:
{'dt' : ISODate('2014-01-01') }
{'dt' : Date('2014-01-01') }
{'dt' : new Date('2014-01-01') }
如果没有以下错误,我无法这样做:
at com.mongodb.util.JSONParser.read(JSON.java:272)
at com.mongodb.util.JSONParser.parse(JSON.java:161)
at com.mongodb.util.JSONParser.parseObject(JSON.java:231)
at com.mongodb.util.JSONParser.parse(JSON.java:195)
at com.mongodb.util.JSONParser.parse(JSON.java:145)
at com.mongodb.util.JSON.parse(JSON.java:81)
at com.mongodb.util.JSON.parse(JSON.java:66)
大概是因为 ETL 工具调用:
com.mongodb.DBObject myQuery_tMongoDBInput_1 = (com.mongodb.DBObject) com.mongodb.util.JSON
.parse("{'dt': new Date('2000-01-01T08:00:00Z')}");
鉴于我无法使用new Date()
在查询中com.mongodb.util.JSON.parse()
方法,有解决办法吗?
我正在使用 MongoDB v2.6.3 并且无法让 $date 运算符工作。
db.testdate.insert( {dt:ISODate('2014-01-01')} )
db.testdate.find()
db.testdate.find( {dt : {$date : '2014-01-01T00:00:00Z'}} )
错误: {
"$err" : "无法规范化查询:BadValue 未知顶级运算符:$date",
“代码”:17287}
db.testdate.find( {dt : {$gte : {$date : '2000-01-01T00:00:00Z'}}} )
我见过其他使用 $date 运算符有效的示例,但无法在我的计算机上执行此操作。
有谁知道为什么?