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

मोंगोडब में सरणी वस्तु मान से योग करने की आवश्यकता है

यह ठीक से काम नहीं कर रहा है क्योंकि यह संग्रह में सभी दस्तावेजों को एकत्रित कर रहा है; आप एक स्थिर "_id":"tempId" . पर समूह बना रहे हैं , आपको केवल $ . जोड़कर सही कुंजी को संदर्भित करने की आवश्यकता है के रूप में:

db.getCollection('myCollection').aggregate([
    { "$group": {
        "_id": "$tempId",
        "totalValue": { 
            "$sum": { "$sum": "$messages.data.value" } 
        }
    } }
])

जो संक्षेप में एक अतिरिक्त क्षेत्र के साथ एक समग्र संचालन का एक एकल चरण पाइपलाइन संस्करण है जो समूह पाइपलाइन से पहले योग अभिव्यक्ति रखता है और फिर उस क्षेत्र को $sum समूह में ऑपरेटर।

उपरोक्त $sum से काम करता है MongoDB से 3.2+ दोनों में उपलब्ध है। $प्रोजेक्ट और $group चरणों और जब में उपयोग किया जाता है $प्रोजेक्ट चरण, $sum भावों की सूची का योग देता है। व्यंजक "$messages.data.value" संख्याओं की सूची देता है [120, 1200] जो तब $sum अभिव्यक्ति:

db.getCollection('myCollection').aggregate([
    { "$project": {
        "values": { "$sum": "$messages.data.value" },
        "tempId": 1,
    } },
    { "$group": {
        "_id": "$tempId",
        "totalValue": { "$sum": "$values" }
    } }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला एक ढूंढता है और दस्तावेज़ों की सरणी में धकेलता है

  2. मोंगोइड/रेल 3 में एम्बेडेड ऑब्जेक्ट्स को क्वेरी करना (कम से कम, न्यूनतम ऑपरेटर और सॉर्टिंग)

  3. mongoengine - एंबेडेड डॉक्यूमेंटफिल्ड की लिस्टफिल्ड पर क्वेरी

  4. Java MongoDB एक साथ कई दस्तावेज़ सहेजता है

  5. फ्लाई पर नए उल्का संग्रह बनाना