web-dev-qa-db-fra.com

Comparaison de date dans mongodb

Je souhaite récupérer tous les documents après une date particulière ..__ Ma base de données a une date en tant que - DateAdded:"2014-12-17 10:03:46.000Z"

J'ai écrit la requête suivante

db.collection.find({DateAdded:{"$lte":new Date("2015-06-17 10:03:46.000Z")}})

Mais le résultat n'extrait aucun enregistrement, même s'il existe des enregistrements pour les dates jusqu'à 2015-06-24.

9
maggs

Vous pouvez utiliser ISODate pour comparer les dates:

"$lte" : ISODate("2015-06-17T10:03:46Z")

ISODate fonctionne car c'est le format de votre date.

new Date() 

encapsule la date dans un assistant ISODate, mais ne peut pas convertir votre requête.

Consultez ce lien pour plus d'informations: http://docs.mongodb.org/manual/core/Shell-types/

14
L_7337

Utilisez ISODate

format: {'field': {$operator: ISODate(yyyy-MM-ddThh:mm:ss.msZ)}}

example: db.getCollection('yourCollection').find({'sampleField': {$lte: ISODate('2015-06-17T10:03:46.000Z')}})
5
Aljohn Yamaro

Vous pouvez utiliser ceci:

db.collection.find({DateAdded:{"$lte":new Date("2017-11-01")}})

Cela convertira votre format de date en ceci:

ISODate("2017-11-01T00:00:00Z")
0