sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Se pueden usar fechas estrictas de JSON $ en una consulta de MongoDB?

No estoy seguro, pero todo sugiere que es imposible crear una consulta válida utilizando JSON estricto. Aunque puede ejecutar una consulta combinando $date con $gt , $gte , $lt , $lte parece, como en su caso, ser siempre evaluado como false .

Cuando combinas $date con $ne o $nin coincidirá con todos los documentos de la colección, así que creo que confirma la observación anterior.

¿Qué es más importante cuando intenta obtener una coincidencia exacta como esta db.foo.find({at: {"$date":"2010-01-01T00:00:00Z"}}) obtendrá un error de operador no válido (10068).

Supongo que cuando intente crear un documento en el shell de Mongo usando $date

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

no se evalúa como fecha y no hay forma de insertar un documento como este en la colección. Como puede ver, parece que JSON estricto solo se analiza correctamente con herramientas como mongoimport .Hay una pregunta similar aquí:¿Hay alguna forma de ejecutar MongoDB shell (o método tojson) en modo JSON estricto?.