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

Kan strenge JSON $dates bruges i en MongoDB-forespørgsel?

Jeg er ikke sikker, men alt tyder på, at det er umuligt at bygge gyldig forespørgsel ved hjælp af streng JSON. Selvom du kan køre forespørgsel ved at kombinere $date med $gt , $gte , $lt , $lte det ser ud til, ligesom i dit tilfælde, altid at blive vurderet som false .

Når du kombinerer $date med $ne eller $nin det vil matche hvert dokument i samlingen, så jeg tror, ​​det bekræfter tidligere observationer.

Hvad er vigtigere, når du prøver at få nøjagtig match som denne db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}}) du får en ugyldig operatørfejl (10068).

Mit gæt er, når du prøver at oprette et dokument i Mongo shell ved hjælp af $date

doc = {at: {"$date":"2010-01-01T00:00:00Z"}}

det vurderes ikke som dato, og der er ingen måde at indsætte et dokument som dette i samlingen. Som du kan se, ser det ud til, at streng JSON kun parses korrekt af værktøjer som mongoimport .Der er et lignende spørgsmål her:Er der en måde at køre MongoDB shell (eller tojson-metoden) i streng JSON-tilstand?



  1. Regex for MongoDB ObjectID

  2. Opdatering af stien 'x' ville skabe en konflikt ved 'x'

  3. Lagring null vs slet ikke at gemme nøglen i MongoDB

  4. Bringer MongoDB til produktion