MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

È possibile utilizzare $date JSON rigorose in una query MongoDB?

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