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

नेवला - वस्तुओं की एक सरणी के अंदर एक मान बढ़ाएँ

.find . में मान को सीधे बढ़ाना संभव नहीं है क्वेरी अगर labelOptions वस्तु का एक सरणी है। इसे आसान बनाने के लिए, आपको labelOptions . को बदलना चाहिए ऑब्जेक्ट के ऐरे से ऑब्जेक्ट में टाइप करें:

"labelOptions": {
    "Bob": 112,
    "Billy": 32,
    "Joe": 45
};

.findByIdAndUpdate . का उपयोग करने पर भी विचार करें इसके बजाय .findOneAndUpdate यदि आप दस्तावेज़ के _id . द्वारा क्वेरी कर रहे हैं . और फिर, आप जो चाहते हैं उसे प्राप्त कर सकते हैं:

Poll.findByIdAndUpdate(
    id,
    {$inc: {`labelOptions.${labelOption}`: 1 }},
    function(err, document) {
    console.log(err);
});

अद्यतन:यदि आप labelOptions . के लिए वस्तुओं की सरणी का उपयोग करने पर लगातार हैं , एक समाधान है:

Poll.findById(
    id,
    function (err, _poll) {

        /** Temporarily store labelOptions in a new variable because we cannot directly modify the document */
        let _updatedLabelOptions = _poll.labelOptions;

        /** We need to iterate over the labelOptions array to check where Bob is */
        _updatedLabelOptions.forEach(function (_label) {

            /** Iterate over key,value of the current object */
           for (let _name in _label) {

               /** Make sure that the object really has a property _name */
               if (_label.hasOwnProperty(_name)) {

                   /** If name matches the person we want to increment, update it's value */
                   if (_name === labelOption) ++_label._name;
               }
           }
        });

        /** Update the documents labelOptions property with the temporary one we've created */
        _poll.update({labelOptions: _updatedLabelOptions}, function (err) {

            console.log(err);
        });
    });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ट्रेलो जैसे कार्ड और सूचियों को पुनर्व्यवस्थित कैसे करें?

  2. जब सफल स्थापना के बाद 'मोंगोड' कमांड चलाया जाता है तो अनुमति अस्वीकार कर दी जाती है

  3. PHP MongoDB कुल $match और $group और $addToSet

  4. MongoDB में $set अपडेट ऑपरेटर कैसे काम करता है

  5. MongoDB में विशेषताओं के साथ कई से कई संबंधों का प्रतिनिधित्व करने के लिए सर्वश्रेष्ठ मॉडल