Je ne suis pas sûr mais tout suggère qu'il est impossible de construire une requête valide en utilisant JSON strict. Bien que vous puissiez exécuter une requête combinant $date
avec $gt
, $gte
, $lt
, $lte
il semble, comme dans votre cas, être toujours évalué comme false
.
Lorsque vous combinez $date
avec $ne
ou $nin
il correspondra à tous les documents de la collection, donc je pense que cela confirme l'observation précédente.
Qu'est-ce qui est le plus important lorsque vous essayez d'obtenir une correspondance exacte comme celle-ci db.foo.find({at :{"$date":"2010-01-01T00:00:00Z"}})
vous obtiendrez une erreur d'opérateur non valide (10068).
Je suppose que lorsque vous essayez de créer un document dans le shell Mongo en utilisant $date
doc = {at: {"$date":"2010-01-01T00:00:00Z"}}
il n'est pas évalué en tant que date et il n'y a aucun moyen d'insérer un document comme celui-ci dans la collection. .Il y a une question similaire ici :Existe-t-il un moyen d'exécuter le shell MongoDB (ou la méthode tojson) en mode JSON strict ?.