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

Gabungkan dokumen dengan array bersarangnya dan array bersarangnya

Anda dapat menggunakan $reduce dengan $concatArrays untuk meratakan struktur data Anda lalu jalankan $unwind dengan $replaceRoot untuk mendapatkan satu anggota per dokumen:

db.collection.aggregate([
  { "$project": {
    "members": {
      "$concatArrays": [
        [{ "userID": "$userID", "userType": "$userType" }],
        { "$reduce": {
          "input": "$clients",
          "initialValue": [],
          "in": {
            "$concatArrays": [
              "$$value",
              [{ "userID": "$$this.userID", "userType": "$$this.userType" }],
              "$$this.members"
            ]
          }
        }}
      ]
    }
  }},
  { "$unwind": "$members" },
  { "$replaceRoot": { "newRoot": "$members" }}
])

Taman Bermain Mongo



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Skrip MongoDB untuk membuat cadangan replikasi yang diatur secara lokal ke Server Windows

  2. kerangka kerja agregasi mongodb cocok dengan dokumen bersarang

  3. Menganalisis Kueri Lambat di MongoDB

  4. Mongoid:bagaimana cara menanyakan semua objek di mana nilainya nihil?

  5. Mengapa menggunakan model.export dalam file model terpisah?