MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

ऑब्जेक्ट आईडी के आधार पर नेस्टेड सरणी को एकत्रित और कम करें

आप $filter का उपयोग कर सकते हैं $map के साथ अपने डेटा को नया आकार देने और _id . द्वारा फ़िल्टर करने के लिए . फिर आप $push का इस्तेमाल करना जारी रख सकते हैं $ifNull के साथ यदि कोई सरणी खाली है तो डिफ़ॉल्ट मान प्रदान करने के लिए:

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

मोंगो प्लेग्राउंड




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में संघ प्रदर्शन करें

  2. कैसे तैनात उल्का ऐप को डेटा mongoimport करने के लिए?

  3. MongoDB सभी प्रश्नों को लॉग कर रहा है

  4. MongoDB एक से कई संबंध

  5. mongodb php ड्राइवर को अनइंस्टॉल करें और एक अलग संस्करण स्थापित करें