Suponiendo que su modelo se llame Employee
:
Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {
})
Como $exists
pide el 0
índice de una matriz, lo que significa que tiene algo en ella.
Lo mismo se aplica a un número máximo:
Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {
})
Entonces eso necesita tener al menos 10 entradas en la matriz para que coincida.
Realmente, debería registrar la longitud de la matriz y actualizar con $inc
cada vez que se añade algo. Entonces puedes hacer:
Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {
})
En la propiedad "departmentsLength" que almacena. Esa propiedad se puede indexar, lo que la hace mucho más eficiente.