Zakładając, że Twój model nazywa się Employee
:
Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {
})
Jako $exists
prosi o 0
indeks tablicy, co oznacza, że coś w nim jest.
To samo dotyczy maksymalnej liczby:
Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {
})
Musi więc mieć co najmniej 10 wpisów w tablicy, aby pasowały.
Naprawdę jednak powinieneś zapisać długość tablicy i zaktualizować za pomocą $inc
za każdym razem, gdy coś jest dodawane. Następnie możesz zrobić:
Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {
})
Na właściwości "departmentsLength" przechowujesz. Ta właściwość może być indeksowana, co czyni ją znacznie bardziej wydajną.