Ако приемем, че вашият модел се нарича Employee
:
Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {
})
Като $exists
пита за 0
индекс на масив, което означава, че има нещо в него.
Същото важи и за максимален брой:
Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {
})
Така че трябва да има поне 10 записа в масива, за да съвпадне.
Наистина обаче трябва да запишете дължината на масива и да актуализирате с $inc
всеки път, когато се добавя нещо. След това можете да направите:
Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {
})
В свойството "departmentsLength", което съхранявате. Това свойство може да бъде индексирано, което го прави много по-ефективно.