MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Können strenge JSON $dates in einer MongoDB-Abfrage verwendet werden?

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?.