MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Hợp nhất tài liệu với các mảng lồng nhau của nó và các mảng lồng nhau của chúng

Bạn có thể sử dụng $ giảm với $ concatArrays để làm phẳng cấu trúc dữ liệu của bạn và sau đó chạy $ unwind với $ ReplaceRoot để có được một thành viên cho mỗi tài liệu:

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" }}
])

Sân chơi Mongo



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Không thể xóa bộ sưu tập khỏi mongodb

  2. $ và truy vấn không trả về kết quả

  3. Hướng dẫn PyMongo:Kiểm tra chuyển đổi dự phòng MongoDB trong ứng dụng Python của bạn

  4. Có thể thay đổi TimeZone mặc định trong MongoDB bằng Rails 3 không?

  5. Làm cách nào để đăng ký AbstractMongoEventListener theo lập trình?