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

नेवला के साथ एक रिकॉर्ड अद्यतन कर रहा है

आप &elementMatch . का उपयोग कर सकते हैं सरणी में इच्छा मौसम खोजने के लिए, और सेटफ़ील्ड ऑब्जेक्ट में आप स्थितीय $ का उपयोग कर सकते हैं ऑपरेटर जो क्वेरी में मेल खाने वाले तत्व की पहचान करता है।

समस्या यह है कि अगर उसे season_number . से मेल खाने वाला कोई सीज़न नहीं मिलता है , दस्तावेज़ अद्यतन नहीं किया जाएगा। इस मामले में आप इस सीज़न को seasons . में जोड़ने के लिए एक और अपडेट क्वेरी सेट कर सकते हैं सरणी।

router.put('/api/shows/:id/seasons/:sid', function(req, res){

  var query = {
    "_id": req.params.id,
    "seasons": { 
      $elemMatch: { 
        "season_number": req.params.sid 
      } 
    }
  }

  var setField = {
    $addToSet: {
      "seasons.$.episodes": req.body
    }
  }

  TV.findOneAndUpdate(query, setField, {upsert:true}, function(err, results){
    if (err && err.code == 16836) { // no document was matched
      var season = {
        "season_number": req.params.sid
        "episodes": [ req.body]
      }
      TV.findOneAndUpdate({"_id": req.params.id}, {$push: {"seasons": season}} , function(err, result) {
          console.log("Inserted document in array");
          res.json(result)
      }); 
    }
    else if (err){
       console.log(err);
       res.status(500).send('Something wrong!');
    }
    else {
       console.log(setField);
       res.json(results)
    }
  })
})

आप यहां देख सकते हैं कुछ मोंगोडब सरणी ऑपरेटर।

आशा है कि यह मदद करता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एम्बेडेड दस्तावेज़ों पर खोजने और संशोधित करने की परमाणुता

  2. मोंगोडीबी में इवेंट शेड्यूलर (क्रोनजॉब)?

  3. रेल 3.2 . में मोंगोइड का उपयोग करते समय डेटाबेस.वाईएमएल को हटा रहा है

  4. मोंगोडब वाक्यांश की कई घटनाओं को कैसे बदलें

  5. $प्रोजेक्ट चरण में $in ऑपरेटर का उपयोग करके फ़िल्टर सरणी