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

जाँच करें कि क्या मान मोंगो संग्रह में मौजूद है

सबसे पहले, यदि आप अपने दस्तावेज़ों को एक सरणी की तरह संग्रहीत कर रहे हैं, तो आप उन्हें केवल एक सरणी के रूप में क्यों नहीं संग्रहीत करते हैं? यदि आप एक रिलेशनल डेटाबेस बैकग्राउंड से आते हैं, तो मैं देख सकता हूँ कि आप इसे इस तरह से स्टोर करने के लिए कैसे ललचाएँगे, लेकिन मोंगो में, यदि यह एक ऐरे की तरह है, तो इसे केवल एक ऐरे के रूप में स्टोर किया जाना चाहिए।

{
    "_id" : ObjectId("52e5361f30f28b6b602e4c7f"),
    "0" : "h",
    "1" : "o",
    "2" : "m"
}

होना चाहिए:

{
    "_id" : ObjectId("52e5361f30f28b6b602e4c7f"),
    "keys" : [ "h", "o", "m" ]
}

इस मामले में, Mongo के पास $addToSet . नामक एक आसान ऑपरेटर है यह ठीक वैसे ही काम करेगा जैसे $push सिवाय इसके कि यह केवल इसे सरणी में जोड़ देगा यदि यह अस्तित्व में नहीं है। ऑपरेशन कुछ इस तरह दिखेगा:

collection.update( query, { $addToSet : { 'keys' : 'l' }}, callback );
// add key 'l'

collection.update( query, { $addToSet : { 'keys' : 'm' }}, callback );
// looks in document, sees 'm' in array, and does nothing

संपादित करें:

अद्यतन के साथ, यह सरणी में कुंजी जोड़ देगा यदि यह वहां नहीं है, लेकिन यदि आप केवल यह जानना चाहते हैं कि यह मौजूद है या नहीं, तो मुझे लगता है कि findOne का उपयोग करने का सबसे अच्छा तरीका होगा :

// find the doc by _id  and the value you want in keys, returns null if it's not a match
collection.findOne({ _id : 52e5361f30f28b6b602e4c7f, 'keys' : 'l' }, function(err, doc) {
    if( doc == null ) {
        // do whatever you need to do if it's not there
    } else {
        // do whatever you need to if it is there
    }
    db.close();
}

अपना इंसर्ट यथावत रखने के लिए, आपको बस Keys को बदलना होगा करने के लिए:

Keys = { 'keys' : [ 'key1', 'key2', 'key3' ] };

और डालने को अन्यथा बदलने की आवश्यकता नहीं है। साथ ही, अपने संग्रह में, आप _id . को बदलना चाह सकते हैं username होने के लिए या एक usernameजोड़ें अपने दस्तावेज़ के लिए फ़ील्ड।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ubuntu पर Golang में Mongo Cloud mongodb डेटाबेस से कनेक्ट नहीं हो सकता

  2. मैं दिनांक के लिए अनुक्रमणिका कैसे बनाऊं?

  3. रेल और मोंगोइड के साथ गतिशील गुण

  4. mongoose.js क्वेरीज़ को समकालिक रूप से चलाना

  5. MongoDB त्रुटि लॉग को डिकोड करना