MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose znajduje wszystkie dokumenty, w których array.length jest większa niż 0 i sortuje dane

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ą.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Utwórz superużytkownika w mongo

  2. mongodb zła wydajność

  3. MongoDB — eksport danych

  4. MongoError:nazwy baz danych nie mogą zawierać znaku „ ” podczas korzystania z mongoosejs łączą się z mLab

  5. Najlepsze zasoby MongoDB