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

Как да подадете вътрешна заявка в mongodb от javascript

TLDR;

Еквивалентът на mongoose би бил първо да се изпълни вложената заявка и резултатите да се предадат на агрегацията.

groups.distinct("p", {"enable": true}).exec().then(matchingGroups => {
    return users.aggregate([
        {$match: {"id": {$in: ["0", "1", "2"]}, p: {$in: matchingGroups}}},
        {$group:{_id:"$v", number:{$sum:1 }}}
    ]).exec();
}).then(aggregationResult => {
    console.log(aggregationResult);
});

Обяснение

Когато изпълнявате следния скрипт в mongo shell, това, което се случва, е, че първо се изпраща вътрешната заявка (distinct), а след това резултатът се предава на външната заявка (агрегиране), която след това се изпраща за изпълнение. Това може да бъде потвърдено чрез заснемане на проследяване на пакет. В прикачените изображения можем да видим първото изпращане на заявка (пакет 9) полученият отговор (пакети 10 и 11) и изпращане на заявка за агрегиране (пакети 12 и 13).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Какъв е пътят към базата данни по подразбиране за MongoDB?

  2. Как да експортирате сортирани данни с помощта на mongoexport?

  3. TypeError при статичен метод на мангуст модел

  4. Как мога да намеря вградени Mongoid документи въз основа на множество критерии?

  5. Mongo DB намира по име на поле с произволна стойност