gpt4 book ai didi

MongoDB 如何使用 $date 运算符进行查询?

转载 作者:可可西里 更新时间:2023-11-01 09:56:40 25 4
gpt4 key购买 nike

编辑 - 上下文:我正在使用 Talend ETL 工具并在查询中使用 ISODate 或 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')}");

考虑到我不能在 com.mongodb.util.JSON.parse() 方法的查询中使用 new Date(),是否有解决方法?


我正在使用 MongoDB v2.6.3,但无法让 $date 运算符工作。

db.testdate.insert( {dt:ISODate('2014-01-01')} )
db.testdate.find()

enter image description here

db.testdate.find( {dt : {$date : '2014-01-01T00:00:00Z'}} )

enter image description here

error: { "$err" : "Can't canonicalize query: BadValue unknown top level operator: $date", "code" : 17287 }

db.testdate.find(  {dt : {$gte : {$date : '2000-01-01T00:00:00Z'}}} )

enter image description here

我见过其他使用 $date 运算符的例子,但无法在我的机器上这样做。

有人知道为什么吗?

最佳答案

$date是为mongoimport,mongoexport等工具准备的,Mongo shell无法识别,应该使用 Date()ISODate() 代替。

关于MongoDB 如何使用 $date 运算符进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26227705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com