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

MongoDB के उप-दस्तावेज़ में प्रत्येक फ़ील्ड का योग कैसे करें?

आपने मनमाना फ़ील्ड नाम रखने की शास्त्रीय गलती की है। MongoDB "स्कीमा-मुक्त" है, लेकिन इसका मतलब यह नहीं है कि आपको अपनी स्कीमा के बारे में सोचने की आवश्यकता नहीं है। मुख्य नाम वर्णनात्मक होने चाहिए, और आपके मामले में, f.e. "S2" का वास्तव में कोई मतलब नहीं है। अधिकांश प्रकार के प्रश्नों और संचालनों को करने के लिए, आपको अपने डेटा को इस तरह संग्रहीत करने के लिए स्कीमा को फिर से डिज़ाइन करना होगा:

_id:...
Segment:[
    { field: "S1", value: 1 },
    { field: "S2", value: 5 },
    { field: "Sn", value: 10 },
]

फिर आप अपनी क्वेरी चला सकते हैं जैसे:

db.collection.aggregate( [
    { $unwind: "$Segment" },
    { $group: {
        _id: '$_id', 
        sum: { $sum: '$Segment.value' } 
    } } 
] );

जिसके परिणामस्वरूप कुछ ऐसा होता है (आपके प्रश्न से एकमात्र दस्तावेज़ के साथ):

{
    "result" : [
        {
            "_id" : ObjectId("51e4772e13573be11ac2ca6f"),
            "sum" : 16
        }
    ],
    "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं मोंगोडीबी में किसी संपत्ति को टेक्स्ट से डेट प्रकार में कैसे परिवर्तित करूं?

  2. मोंगो खोल के माध्यम से mongoDB में नेस्टेड सरणियों को अद्यतन कर रहा है

  3. प्रोएक्टिव मोंगोडीबी मॉनिटरिंग (डेवलपर स्टूडियो/सलाहकार कोण)

  4. AngularJs और MongoDB/Mongoose का उपयोग करना

  5. MongoDB डेटा-एट-रेस्ट को एन्क्रिप्ट करना