MongoDB Abfrage mit dem $date Betreiber?
Bearbeiten - Kontext: ich bin mit der Talend-ETL-tool und mit Isodatum oder Datum oder neues Datum in der Abfrage wie der folgenden Fehler auf, so brauche ich eine Arbeit um:
{'dt' : ISODate('2014-01-01') }
{'dt' : Date('2014-01-01') }
{'dt' : new Date('2014-01-01') }
Ich kann nicht so tun, ohne die folgende Fehlermeldung:
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)
vermutlich, weil die ETL-tool-Aufrufe:
com.mongodb.DBObject myQuery_tMongoDBInput_1 = (com.mongodb.DBObject) com.mongodb.util.JSON
.parse("{'dt': new Date('2000-01-01T08:00:00Z')}");
Gegeben, dass ich nicht verwenden können, die new Date()
in die Abfrage für den com.mongodb.util.JSON.parse()
Methode, ist es eine Arbeit um?
Ich bin mit MongoDB v2.6.3 und nicht den $Datum-operator zu arbeiten.
db.testdate.insert( {dt:ISODate('2014-01-01')} )
db.testdate.find()
db.testdate.find( {dt : {$date : '2014-01-01T00:00:00Z'}} )
Fehler: {
"$err" : "Können Sie nicht kanonisieren-Abfrage: BadValue unbekannte top-level-operator: $Datum",
"code" : 17287 }
db.testdate.find( {dt : {$gte : {$date : '2000-01-01T00:00:00Z'}}} )
Ich habe gesehen, andere Beispiele, wo die Verwendung der $Datum operator gearbeitet, kann aber nicht bekommen, es zu tun, damit auf meinem Rechner.
Weiß jemand warum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
$date
ist vorbereitet für Werkzeugemongoimport
,mongoexport
usw. Mongo shell kann nicht erkennen, sollten SieDate()
oderISODate()
statt.{$date:<milliseconds>}
, Millisekunden = new Date("dateString").getTime().Basierend auf dem, was ist geschrieben in der Dokumentation,
{ "$date": "<date>" }
verwendet wird, in einem strict-Modus und in mongoshell, die Sie verwenden müssennew Date ( <date> )
Schauen, wie sollten Sie Abfrage von Daten (im Grunde mit
$gte, $gt, $lte, $lt
).Sind hier einige relevante Antworten: ein und zwei.