mongodb - Keperluan untuk pertanyaan statistik jadual berkaitan mongoose
为情所困
为情所困 2017-05-02 09:24:37
0
2
1061

Saya ingin bertanya soalan tentang mongodb (mongoose). yang menyimpan teg id, apabila menanyakan artikel, data setiap teg boleh dikaitkan
Permintaan semasa ialah:
Teg pertanyaan Apabila membuat senarai, anda perlu mendapatkan pada masa yang sama berapa banyak artikel yang disertakan dalam setiap teg, iaitu, mengira
Selain melintasi dan mewujudkan medan kiraan secara manual dan mengira semula apabila menambah, memadam atau. mengubah suai medan kiraan
Adakah terdapat cara yang lebih baik untuk mencapainya melalui Kaedah API mongoose, terima kasih semua!

为情所困
为情所困

membalas semua(2)
PHPzhong

Selesai, pertanyaan pengagregatan diperlukan sebelum pengagregatan, dan kemudian agregat Kod khusus ialah pertanyaan pengagregatan itu sendiri boleh menanyakan keperluan, tetapi keperluannya adalah perhubungan data banyak-ke-banyak. banyak, jadi mereka mesti diuraikan menjadi satu hubungan satu dengan satu

Coretan kod berkaitan
Dokumen rujukan berkaitan

// 查询article-tag的count聚合数据
  const getTagsCount = tags => {
    let $match = {};
    if (!authIsVerified(req)) {
      $match = { state: 1, public: 1 };
    }
    Article.aggregate([
      { $match },
      { $unwind : "$tag" }, 
      { $group: { 
        _id: "$tag", 
        num_tutorial: { $sum : 1 }}
      }
    ])
    .then(counts => {
      const newTags = tags.docs.map(t => {
        const finded = counts.find(c => String(c._id) === String(t._id));
        t.count = finded ? finded.num_tutorial : 0;
        return t;
      });
      tags.docs = newTags;
      querySuccess(tags);
    })
    .catch(err => {
      querySuccess(tags);
    })
  };
習慣沉默

Terdapat ciri yang sangat berguna yang dipanggil Populasi dalam mongoose, saya cadangkan anda menyemaknya

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan