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

menggabungkan beberapa dokumen menjadi satu dokumen dengan kedua bidang dokumen di 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"
  }
])

Jawaban oleh @turivishal




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Django-nonrel menggunakan ListField yang berisi EmbeddedObjects di admin

  2. Meminta MongoDB dengan Antarmuka JSON / HTTP / REST

  3. Menyimpan file PDF di DB dengan Flask-admin

  4. MongoTemplate cara menambahkan lebih dari dua atauOperator di Query

  5. Bagaimana saya bisa mengambil datetime dari mongodb? Dengan membandingkan data dengan jDateChosser Java