MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose намира всички документи, където array.length е по-голямо от 0 и сортира данните

Ако приемем, че вашият модел се нарича Employee :

Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {

})

Като $exists пита за 0 индекс на масив, което означава, че има нещо в него.

Същото важи и за максимален брой:

Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {

})

Така че трябва да има поне 10 записа в масива, за да съвпадне.

Наистина обаче трябва да запишете дължината на масива и да актуализирате с $inc всеки път, когато се добавя нещо. След това можете да направите:

Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {

})

В свойството "departmentsLength", което съхранявате. Това свойство може да бъде индексирано, което го прави много по-ефективно.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализация на MongoDB Collection:инициализиране на документ със стойности по подразбиране

  2. Асинхронни обратни извиквания на Mongoose в оператора then

  3. passport.js - удостоверява потребители от MongoDB с passport-local

  4. Възможно ли е да се свържете с локален MongoDB с flutter dart?

  5. Когато защитавате формуляр за коментари и свързаната крайна точка на API, трябва ли входът да бъде дезинфекциран, валидиран и кодиран в браузър, сървър или и двете?