MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoose encontra todos os documentos onde array.length é maior que 0 e classifica os dados


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.