MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose findet alle Dokumente, bei denen array.length größer als 0 ist, und sortiert die Daten

Angenommen, Ihr Modell heißt Employee :

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

})

Als $exists fragt nach der 0 Index eines Arrays, was bedeutet, dass etwas darin enthalten ist.

Gleiches gilt für eine maximale Anzahl:

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

})

Das muss also mindestens 10 übereinstimmende Einträge im Array haben.

Wirklich, aber Sie sollten die Länge des Arrays notieren und mit $inc aktualisieren jedes Mal, wenn etwas hinzugefügt wird. Dann können Sie Folgendes tun:

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

})

Auf der Eigenschaft "departmentsLength" speichern Sie. Diese Eigenschaft kann indiziert werden, was sie viel effizienter macht.