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

Bagaimana cara mendapatkan nilai hitungan menggunakan $lookup di mongodb menggunakan golang?

Jadi agregasi Anda benar-benar mengembalikan semua comment dokumen di resultField bidang, yang secara implisit berisi jumlah hasil, itu adalah irisan yang panjangnya dapat Anda periksa di Go menggunakan len() bawaan fungsi.

Karena Anda hanya perlu panjang (jumlah comment dokumen), itu sebabnya Anda hanya ingin mengambil ukuran array ini. Untuk tujuan itu, Anda dapat menggunakan $addFields panggung untuk menggantikan resultField larik dengan angka sebagai panjang larik ini.

pipe := c.Pipe([]bson.M{
    {
        "$lookup": bson.M{
            "from":         "comment",
            "localField":   "_id",
            "foreignField": "post_id",
            "as":           "resultField",
        },
    },
    {
        "$addFields": bson.M{
            "resultField": bson.M{"$size": "$resultField"},
        },
    },
})

Perhatikan bahwa $addFields stage setara dengan $project tahap yang secara eksplisit menentukan semua bidang yang ada di dokumen input dan menambahkan bidang baru. Hanya tersedia sejak MongoDB versi 3.4.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana menghubungkan ke MongoDB menggunakan PhantomJS

  2. REST permintaan AJAX ke mongoDB

  3. Objek Tersemat MongoDB tidak memiliki ID (nilai nol)

  4. Agregasi Mongo / Mongoose - masalah $redact dan $cond

  5. Dorong elemen di posisi array apa pun di subdokumen