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

मोंगोडब अप्सर्ट एम्बेडेड दस्तावेज़

मुझे लगता है कि आप जो चाहते हैं वह $addToSet कमांड है - जो किसी तत्व को केवल तभी धक्का देगा जब वह पहले से मौजूद न हो। संक्षिप्तता के लिए मैंने आपके उदाहरण को थोड़ा सरल कर दिया है:

db.meters.findOne()
{
    "_id" : ObjectId("4f8e95a718bc9c7da1e6511a"),
    "config" : {
        "someparam" : 4.5
    },
    "data" : [
        {
            "Meter" : 123456789,
        }
    ],
    "key" : "20120418_123456789"
}

अब दौड़ें:

db.meters.update({"key" : "20120418_123456789"}, {"$addToSet": {"data" : {"Meter" : 1234}}})

और हमें अपडेटेड वर्जन मिलता है:

db.meters.findOne()
{
    "_id" : ObjectId("4f8e95a718bc9c7da1e6511a"),
    "config" : {
        "someparam" : 4.5
    },
    "data" : [
        {
            "Meter" : 123456789,
        },
        {
            "Meter" : 1234
        }
    ],
    "key" : "20120418_123456789"
}

वही आदेश फिर से चलाएँ और परिणाम अपरिवर्तित है।

नोट:आप इन दस्तावेज़ों को विकसित करने जा रहे हैं, खासकर यदि यह फ़ील्ड असीमित है और इस तरह से अपडेट करके लगातार (अपेक्षाकृत महंगी) चाल चल रही है - आपको इसे कम करने के तरीकों पर विचारों के लिए यहां एक नज़र रखना चाहिए:

http://www.mongodb.org/display/DOCS/Padding +Factor#PaddingFactor-ManualPadding




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB से प्राप्त स्ट्रिंग्स की एक सरणी के माध्यम से पुनरावृति

  2. Mongoose/MongoDB में मल्टीफ़ील्ड इंडेक्स बनाना

  3. मैक ओएस एक्स पर मोंगोइमपोर्ट कहाँ स्थापित है?

  4. कैसे मोंगोडीबी जारी रखें - एक नई छवि में चल रहे डॉकर कंटेनर का डेटा?

  5. dns . के रूप में ईएलबी समापन बिंदु के साथ मोंगोडब क्लस्टर