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

hợp nhất nhiều tài liệu thành một tài liệu với cả hai trường tài liệu trong MongoDB

db.collection.aggregate([
  {
    $match: {
      Deal: {
        $exists: true
      }
    }
  },
  {
    $lookup: {
      from: "collection",
      let: {
        name: "$Deal.name"
      },
      pipeline: [
        {
          $match: {
            data: {
              $exists: true
            }
          }
        },
        {
          $project: {
            data: {
              $reduce: {
                input: {
                  $objectToArray: "$data.Inside_data.project"
                },
                initialValue: {},
                in: {
                  $cond: [
                    {
                      $eq: [
                        "$$this.k",
                        "$$name"
                      ]
                    },
                    "$$this.v",
                    "$$value"
                  ]
                }
              }
            }
          }
        },
        {
          $project: {
            _id: 0,
            alpha: "$data.alpha",
            beta: "$data.beta"
          }
        }
      ],
      as: "Deal.data"
    }
  },
  {
    $unwind: "$Deal.data"
  }
])

Câu trả lời của @turivishal




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB So khớp một mảng với $ type?

  2. Nhập Ref trong lược đồ mongoose khi làm việc với Graphql

  3. MongoDB:Sử dụng $ sample với trình điều khiển C #

  4. Cách tích hợp Pyramid 1.1 và Mongo DB - càng ít dòng càng tốt

  5. Xác thực MongoDB Atlas không thành công trên Python