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

Jak przekazać wewnętrzne zapytanie w mongodb z javascript

TLDR;

Odpowiednikiem mangusty byłoby najpierw uruchomienie zagnieżdżonego zapytania i przekazanie wyników do agregacji.

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);
});

Wyjaśnienie

Podczas wykonywania poniższego skryptu w powłoce mongo, dzieje się tak, że najpierw przesyłane jest zapytanie wewnętrzne (odrębne), a następnie wynik jest przekazywany do zapytania zewnętrznego (agregacja), które jest następnie przesyłane do wykonania. Można to potwierdzić, przechwytując śledzenie pakietów. Na załączonych obrazach widzimy przesłanie pierwszego zapytania (pakiet 9) otrzymana odpowiedź (pakiety 10 i 11) oraz przesłanie zapytania agregującego (pakiety 12 i 13).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dlaczego Mongoose ma zarówno schematy, jak i modele?

  2. Jak mongodb tworzy bazę danych/kolekcje w locie?

  3. Jak używać typu dziesiętnego w MongoDB

  4. Wysokowydajne klastry MongoDB na Amazon EC2

  5. Utwórz kopię zapasową bazy danych MongoDB za pomocą mongodump