Ik weet het niet zeker, maar alles suggereert dat het onmogelijk is om een geldige query te bouwen met strikte JSON. Hoewel u een query kunt uitvoeren die $date
combineert met $gt
, $gte
, $lt
, $lte
het lijkt, zoals in jouw geval, altijd te worden geëvalueerd als false
.
Wanneer je $date
. combineert met $ne
of $nin
het komt overeen met elk document in de verzameling, dus ik denk dat het eerdere waarneming bevestigt.
Wat is belangrijker wanneer u een exacte overeenkomst als deze probeert te krijgen db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}})
u krijgt een ongeldige operatorfout (10068).
Mijn gok is Wanneer probeer een document in Mongo-shell te maken met behulp van $date
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
het wordt niet geëvalueerd als datum en er is geen manier om een dergelijk document in de collectie in te voegen. Zoals je ziet, lijkt het erop dat strikte JSON alleen correct wordt geparseerd door tools zoals mongoimport
.Er is hier een vergelijkbare vraag:is er een manier om MongoDB-shell (of tojson-methode) in strikte JSON-modus uit te voeren?.