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

Gabungkan dan kurangi array bersarang berdasarkan ObjectId

Anda dapat menggunakan $filter dengan $map untuk membentuk kembali data Anda dan memfilter menurut _id . Kemudian Anda dapat terus menggunakan $push dengan $ifNull untuk memberikan nilai default jika array kosong:

db.collection.aggregate([
    {
        $addFields: {
            employeeResponses: {
                $map: {
                    input: {
                        $filter: {
                            input: "$employeeResponses",
                            cond: {
                                $eq: [ "$$this._id", "5d978d372f263f41cc624727"]
                            }
                        }
                    },
                    in: "$$this.response"
                }
            }
        }
    },
    {
        $group: {
            _id: null,
            responses: { $push: { $ifNull: [ { $arrayElemAt: [ "$employeeResponses", 0 ] }, "No response" ] } }
        }
    }
])

Taman Bermain Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb - jumlah item menggunakan addToSet

  2. Spring data mongodb menghapus properti dari dokumen menggunakan MongoTemplate

  3. Menggunakan CouchDb di ponsel android dan mongodb di sisi server

  4. data pegas, agregasi db Mongo

  5. Contoh MongoDB untuk Yesod / Persistent