MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara melewatkan kueri dalam di mongodb dari javascript

TLDR;

Persamaan luwak adalah menjalankan kueri bertingkat terlebih dahulu, dan meneruskan hasilnya ke agregasi.

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

Penjelasan

Saat menjalankan skrip berikut di mongo shell, yang terjadi adalah kueri dalam (berbeda) dikirimkan terlebih dahulu, dan kemudian hasilnya diteruskan ke kueri luar (agregasi) yang kemudian dikirimkan untuk dieksekusi. Ini dapat dikonfirmasi dengan menangkap jejak paket. Pada gambar terlampir, kita dapat melihat pengiriman permintaan pertama (paket 9) respons yang diterima (paket 10 dan 11), dan pengiriman kueri agregasi (paket 12 dan 13).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. agregasi mongodb untuk memperbarui koleksi

  2. Melakukan kueri regex dengan PyMongo

  3. MongoDB $trunc

  4. Kueri agregat Mongodb pada catatan tertentu alih-alih koleksi

  5. Notasi titik vs. $elemMatch