Non sono sicuro, ma tutto suggerisce che è impossibile creare query valide utilizzando JSON rigoroso. Sebbene tu possa eseguire query combinando $date
con $gt
, $gte
, $lt
, $lte
sembra, come nel tuo caso, da valutare sempre come false
.
Quando combini $date
con $ne
o $nin
corrisponderà a tutti i documenti della collezione, quindi penso che confermi l'osservazione precedente.
Cosa è più importante quando provi a ottenere una corrispondenza esatta come questo db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}})
otterrai un errore dell'operatore non valido (10068).
La mia ipotesi è Quando provo a creare un documento in Mongo shell usando $date
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
non viene valutato come data e non c'è modo di inserire un documento come questo nella raccolta. Come vedi sembra che il codice JSON rigoroso venga analizzato correttamente solo da strumenti come mongoimport
.C'è una domanda simile qui:c'è un modo per eseguire la shell MongoDB (o il metodo tojson) in modalità JSON rigorosa?.