Ich bin mir nicht sicher, aber alles deutet darauf hin, dass es unmöglich ist, eine gültige Abfrage mit striktem JSON zu erstellen. Obwohl Sie eine Abfrage ausführen können, die $date
kombiniert mit $gt
, $gte
, $lt
, $lte
es scheint, wie in Ihrem Fall, immer als false
ausgewertet zu werden .
Wenn Sie $date
kombinieren mit $ne
oder $nin
es wird mit jedem Dokument in der Sammlung übereinstimmen, also denke ich, dass es die vorherige Beobachtung bestätigt.
Was ist wichtiger, wenn Sie versuchen, eine exakte Übereinstimmung wie diese db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}})
zu erhalten Sie erhalten einen ungültigen Bedienerfehler (10068).
Meine Vermutung ist, wenn Sie versuchen, ein Dokument in der Mongo-Shell mit $date
zu erstellen
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
Es wird nicht als Datum ausgewertet und es gibt keine Möglichkeit, ein Dokument wie dieses in eine Sammlung einzufügen. Wie Sie sehen, scheint strenges JSON nur von Tools wie mongoimport
korrekt geparst zu werden .Hier gibt es eine ähnliche Frage:Gibt es eine Möglichkeit, die MongoDB-Shell (oder die tojson-Methode) im strikten JSON-Modus auszuführen?.