sql >> Database >  >> NoSQL >> MongoDB

Kunnen strikte JSON $dates worden gebruikt in een MongoDB-query?

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



  1. Wat is MongoDB en hoe werkt het?

  2. $and gebruiken met $match in mongodb

  3. db.collection is geen functie bij gebruik van MongoClient v3.0

  4. Oproepfunctie binnen mongodb's aggregaat?