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

Mongoose trouve tous les documents où array.length est supérieur à 0 et trie les données

En supposant que votre modèle s'appelle Employee :

Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {

})

Comme $exists demande le 0 index d'un tableau, ce qui signifie qu'il contient quelque chose.

Il en va de même pour un nombre maximum :

Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {

})

Cela doit donc avoir au moins 10 entrées dans le tableau pour correspondre.

Vraiment, vous devriez enregistrer la longueur du tableau et mettre à jour avec $inc chaque fois que quelque chose est ajouté. Ensuite, vous pouvez faire :

Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {

})

Sur la propriété "departmentsLength" que vous stockez. Cette propriété peut être indexée, ce qui la rend beaucoup plus efficace.