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

Hitung Array Tertanam Luar dan Dalam dalam satu kueri

Anda dapat menggunakan $reduce dan $concatArrays untuk "menggabungkan" "array array" bagian dalam ke dalam satu daftar dan ukur $size dari itu. Maka cukup $add dua hasil bersama-sama:

db.posts.aggregate([
  { "$match": { _id:ObjectId("5dbdacc28cffef0b94580dbd") } },
  { "$addFields": {
    "totalBoth": {
      "$add": [
        { "$size": "$comments" },
        { "$size": {
          "$reduce": {
            "input": "$comments.replies",
            "initialValue": [],
            "in": {
              "$concatArrays": [ "$$value", "$$this" ] 
            }
          }
        }}
      ]
    }
  }}
])

Memperhatikan bahwa "array of arrays" adalah efek dari ekspresi seperti $comments.replies , jadi operasi untuk membuat ini menjadi satu larik di mana Anda dapat mengukur semua elemen.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Di mana file log mongodb di mac

  2. Apa perbedaan antara MongoDB Atlas dan MongoDB Atlas untuk AWS?

  3. Kompleksitas Waktu $addToset vs $push ketika elemen tidak ada di Array

  4. MongoDB PILIH JUMLAH KELOMPOK OLEH

  5. Java, MongoDB:Bagaimana cara memperbarui setiap objek sambil mengulangi koleksi besar?