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

संग्रह में दस्तावेज़ों के समान नामित फ़ील्ड के सभी मानों का योग करें

आप $objectToArray का लाभ उठा सकते हैं और $arrayToObject ऑपरेटर आपकी ऑब्जेक्ट कुंजियों को गतिशील रूप से पढ़ने के लिए। _id . से छुटकारा पाने के लिए और name वे फ़ील्ड जिन्हें आप $filter कर सकते हैं द्वारा $type .

db.collection.aggregate([
    {
        $project: {
            _id: 0,
            fields: {
                $filter: {
                    input: { $objectToArray: "$$ROOT" },
                    cond: { $eq: [ { $type: "$$this.v" }, "double" ] }
                }
            }
        }
    },
    {
        $unwind: "$fields"
    },
    {
        $group: {
            _id: "$fields.k",
            total: { $sum: "$fields.v" }
        }
    },
    {
        $group: {
            _id: null,
            aggregates: { $push: { k: "$_id", v: "$total" } }
        }
    },
    {
        $replaceRoot: {
            newRoot: { $arrayToObject: "$aggregates" }
        }
    }
])

मोंगो खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला में मेरी $पुश विधि ठीक काम नहीं करती है

  2. MongoDB- अगर यह मौजूद नहीं है तो डालें, अन्यथा छोड़ें

  3. क्या AWS DocumentDB एक ही प्रश्न में 3+ संग्रह में शामिल होने का समर्थन करता है?

  4. नेवला के लिए प्लगइन्स स्थापित करना - त्रुटि प्राप्त करना

  5. हैश फ़ील्ड पर मोंगोइड क्वेरी