MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Node.js vers MongoDB :rechercher par date

Vous n'avez besoin d'aucun de ces emballages. Une date est une date :

var zeroth = {$or:[ {start: new Date(), {users:{$size:2}} ]}; 

Maintenant, bien sûr, si ces "dates" dans votre document sont en fait des "chaînes" et non la bonne date types alors c'est votre problème. Et ce que vous vraiment il faut fixer ces valeurs pour qu'elles soient des dates réelles.

Cela s'applique à tous implémentation du langage, où vous devriez travailler avec le type "date" natif et laisser le pilote faire la conversion pour vous.

Comment déterminer si le champ est une chaîne

Eh bien, la différence évidente est que lorsque vous regardez un document dans le shell mongo, s'il s'agit d'un vrai type de date BSON, il ressemblera à ceci :

"start": ISODate("2014-03-31T08:47:48.946Z"),

Si ce n'est pas assez clair, il y a le $type opérateur que vous pouvez utiliser dans une requête comme celle-ci :

db.collection.find({ "start": { "$type": 2 } }).count()

Ce n'est pas non plus pas MongoDB qui fait cela s'il s'agit d'une chaîne, mais plutôt une mauvaise implémentation dans l'application ou l'importation qui était responsable de sa création. C'était sur quoi portaient les points soulevés dans la réponse initiale.