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

requête mongodb pour faire correspondre chaque élément du tableau doc ​​à une condition

Je ne pense pas qu'il y ait encore un moyen de le faire, à part parcourir manuellement vos documents et vérifier chaque valeur du tableau. Cela va être assez lent car il doit exécuter JavaScript sur chaque document et ne peut tirer parti d'aucun index sur col.values .

Même un $où La requête d'expression JavaScript ne semble pas fonctionner ici car, peut-être parce que la requête contient un rappel et est trop complexe :

db.col.find("this.values.every(function(v) { return (v > 1 && v < 5) })")

Modifier : Pour certaines requêtes, y compris celle-ci, le JavaScript $où l'expression a besoin d'une instruction de retour, donc cela fonctionne bien :

db.col.find("return this.values.every(function(v) { return (v > 1 && v < 5) })")