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

मैं MongoDB में किसी ऑब्जेक्ट को आंशिक रूप से कैसे अपडेट करूं ताकि नई ऑब्जेक्ट मौजूदा के साथ ओवरले/विलय हो जाए

मैंने इसे अपने स्वयं के कार्य से हल किया। यदि आप दस्तावेज़ में निर्दिष्ट फ़ील्ड को अपडेट करना चाहते हैं तो आपको इसे स्पष्ट रूप से संबोधित करने की आवश्यकता है।

उदाहरण:

{
    _id : ...,
    some_key: { 
        param1 : "val1",
        param2 : "val2",
        param3 : "val3"
    }
}

अगर आप केवल param2 को अपडेट करना चाहते हैं, तो ऐसा करना गलत है:

db.collection.update(  { _id:...} , { $set: { some_key : new_info  } }  //WRONG

आपको अवश्य उपयोग करना चाहिए:

db.collection.update(  { _id:...} , { $set: { some_key.param2 : new_info  } } 

तो मैंने एक समारोह कुछ इस तरह लिखा:

function _update($id, $data, $options=array()){

    $temp = array();
    foreach($data as $key => $value)
    {
        $temp["some_key.".$key] = $value;
    } 

    $collection->update(
        array('_id' => $id),
        array('$set' => $temp)
    );

}

_update('1', array('param2' => 'some data'));


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो क्वेरी में आईएसओ तिथि को टाइमस्टैम्प में बदलें

  2. MongoDB एकत्रीकरण:पिछली पंक्तियों के योग से रनिंग टोटल की गणना करें

  3. शीर्ष मोंगोडीबी संसाधन

  4. MongoDB में वाइल्डकार्ड इंडेक्स में विशिष्ट फ़ील्ड को बाहर करें

  5. सरणी के साथ दस्तावेज़ खोजें जिसमें एक विशिष्ट मान हो