Presumindo que seu modelo é chamado de
Employee
:Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {
})
Como
$exists
pede o 0
índice de uma matriz, o que significa que tem algo nele. O mesmo se aplica a um número máximo:
Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {
})
Então, isso precisa ter pelo menos 10 entradas na matriz para corresponder.
Realmente, você deve registrar o comprimento do array e atualizar com
$inc
cada vez que algo é adicionado. Então você pode fazer:Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {
})
Na propriedade "departmentsLength" você armazena. Essa propriedade pode ser indexada, o que a torna muito mais eficiente.