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

MongoDB परमाणु खोजऑरक्रिएट:findOne, अगर कोई नहीं है तो डालें, लेकिन अपडेट न करें

MongoDB 2.4 से शुरू होकर, अब परमाणु findOrCreate के लिए एक अद्वितीय अनुक्रमणिका (या किसी अन्य समाधान) पर भरोसा करना आवश्यक नहीं है। संचालन की तरह।

यह $setOnInsert . के लिए धन्यवाद है 2.4 के लिए नया ऑपरेटर, जो आपको उन अपडेट को निर्दिष्ट करने की अनुमति देता है जो केवल दस्तावेज़ डालते समय ही होने चाहिए।

यह, upsert . के साथ संयुक्त है विकल्प, इसका मतलब है कि आप findAndModify . का उपयोग कर सकते हैं एक परमाणु प्राप्त करने के लिए findOrCreate -जैसा ऑपरेशन।

db.collection.findAndModify({
  query: { _id: "some potentially existing id" },
  update: {
    $setOnInsert: { foo: "bar" }
  },
  new: true,   // return new doc if one is upserted
  upsert: true // insert the document if it does not exist
})

$setOnInsert . के रूप में केवल सम्मिलित किए जा रहे दस्तावेज़ों को प्रभावित करता है, यदि कोई मौजूदा दस्तावेज़ पाया जाता है, तो कोई संशोधन नहीं होगा। यदि कोई दस्तावेज़ मौजूद नहीं है, तो यह निर्दिष्ट _id के साथ एक को ऊपर उठाएगा, फिर केवल सम्मिलित करें सेट करें। दोनों ही मामलों में, दस्तावेज़ वापस कर दिया जाता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडीबी के लिए सी # ड्राइवर:सीमा + गिनती का उपयोग कैसे करें?

  2. मोंगो - रूबी कनेक्शन समस्या

  3. $ और $ मैच के साथ mongodb . का उपयोग करना

  4. MongoParseError:विकल्प useCreateIndex, useFindAndModify समर्थित नहीं हैं

  5. Docker . में node.js के माध्यम से MongoDB से कनेक्ट नहीं हो सकता