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

आप किसी ऑब्जेक्ट के भीतर मानों को कैसे जोड़ते हैं जो नोड.जेएस का उपयोग करके मोंगोडब में नेस्टेड उप-दस्तावेज़ है?

जिस दस्तावेज़ पर काम किया जाना है वह नीचे है। यह नेस्टेड ऑब्जेक्ट है:एक ऑब्जेक्ट (की-वैल्यू पेयर जिसका मान 100 है) एक ऑब्जेक्ट ('0') के भीतर नेस्ट किया जाता है (इसे एक स्ट्रिंग के रूप में लिखा जाता है), और यह किसी अन्य ऑब्जेक्ट ("japanese3") के अंदर नेस्ट किया जाता है। उपयोगकर्ता नाम का उपयोग सही दस्तावेज़ प्राप्त करने के लिए एक क्वेरी के रूप में किया जाता है।

{ japanese3: 
   { '0': 
     {"japanese3a": 100,  "japanese3b": 100,  "japanese3c": 100} 
   } 
}

लक्ष्य सबसे गहरे नेस्टेड ऑब्जेक्ट में संख्या मानों को जोड़ना है, इसलिए वांछित परिणाम "300" है।

स्क्रिप्ट है:

         .aggregate([
           {$match: {username: username}}, //finds the document by username
           {$set: {"japanese_array":{$objectToArray: "$japanese3.0"}}}, // all fields have the same name now (k, v)
           {$project: {_id:0, total:{$sum: "$japanese_array2.v"}}}// sum up the "v" fields                                     
       ])
        .toArray(function(err, result){
          if (err)
            console.log("Failed");
            console.log(result); 
            res.send({ status: true, msg: result[0].total}); //result shows up as a number, in this case: 300
    });                            
 });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. NestJS के साथ सर्वर-साइड पेजिनेशन कैसे प्रदान करें?

  2. एक अजगर तानाशाही का उपयोग कर एक MongoEngine दस्तावेज़ अद्यतन करें?

  3. MongoDB सॉर्टिंग दिनांक स्ट्रिंग (मिमी/दिन/वर्ष)

  4. मोंगोडम्प का उपयोग करना:मोंगोडम्प:कमांड नहीं मिला

  5. मतदान थ्रॉटल और मतदान अंतराल का उपयोग कैसे करें?