Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में सशर्त अपसर्ट (एकाधिक इन्सर्ट) के साथ दस्तावेज़ अपडेट करना

MongoDB में bulkWrite() का उपयोग करके सशर्त अपसर्ट और एकाधिक ऑपरेशन करना

MongoDB में एक ही ऑपरेशन में एकाधिक राइट ऑपरेशन (अपडेट, इन्सर्ट, अपसर्ट) करने के लिए bulkWrite() का उपयोग करें। यह सशर्त अपसर्ट लॉजिक के लिए आदर्श है।

उदाहरण: संग्रह और दस्तावेज़ बनाना

> db.demo428.insertOne({ "Name" : "Chris", "Age" : 21 });
{ "acknowledged" : true, "insertedId" : ObjectId("5e75f428bbc41e36cc3cae83") }
> db.demo428.insertOne({ "Name" : "Chris", "Age" : 23 });
{ "acknowledged" : true, "insertedId" : ObjectId("5e75f429bbc41e36cc3cae84") }
> db.demo428.insertOne({ "Name" : "David", "Age" : 22 });
{ "acknowledged" : true, "insertedId" : ObjectId("5e75f42abbc41e36cc3cae85") }
> db.demo428.insertOne({ "Name" : "David", "Age" : 21 });
{ "acknowledged" : true, "insertedId" : ObjectId("5e75f42abbc41e36cc3cae86") }

सभी दस्तावेज़ देखना

> db.demo428.find();

आउटपुट:

{ "_id" : ObjectId("5e75f428bbc41e36cc3cae83"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e75f429bbc41e36cc3cae84"), "Name" : "Chris", "Age" : 23 }
{ "_id" : ObjectId("5e75f42abbc41e36cc3cae85"), "Name" : "David", "Age" : 22 }
{ "_id" : ObjectId("5e75f42abbc41e36cc3cae86"), "Name" : "David", "Age" : 21 }

सशर्त अपसर्ट के साथ bulkWrite (David, Age 22 को अपडेट; Carol, Age 22 इन्सर्ट)

> db.demo428.bulkWrite(
  [
    { "updateOne": {
      "filter": { "Name": "David", "Age": 22 },
      "update": { "$set": { "Info": {Name:"John"} } }
    }},
    { "insertOne": {
      "document": { "Name": "Carol", "Age": 22, "Info": {Name:"John"} }
    }}
  ],
  { "ordered": false }
)
{ "acknowledged" : true, "deletedCount" : 0, "insertedCount" : 1, "matchedCount" : 1, "upsertedCount" : 0, "insertedIds" : { "1" : ObjectId("5e75f448bbc41e36cc3cae87") }, "upsertedIds" : { } }

ऑपरेशन के बाद दस्तावेज़ देखना

> db.demo428.find();

आउटपुट:

{ "_id" : ObjectId("5e75f428bbc41e36cc3cae83"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e75f429bbc41e36cc3cae84"), "Name" : "Chris", "Age" : 23 }
{ "_id" : ObjectId("5e75f42abbc41e36cc3cae85"), "Name" : "David", "Age" : 22, "Info" : { "Name" : "John" } }
{ "_id" : ObjectId("5e75f42abbc41e36cc3cae86"), "Name" : "David", "Age" : 21 }
{ "_id" : ObjectId("5e75f448bbc41e36cc3cae87"), "Name" : "Carol", "Age" : 22, "Info" : { "Name" : "John" } }

bulkWrite ऑपरेशन प्रकार:

ऑपरेशनविवरण
insertOneएक दस्तावेज़ इन्सर्ट
updateOneएक दस्तावेज़ अपडेट
updateManyएकाधिक दस्तावेज़ अपडेट
deleteOneएक दस्तावेज़ डिलीट
deleteManyएकाधिक दस्तावेज़ डिलीट
replaceOneएक दस्तावेज़ रिप्लेस

विकल्प:

  • ordered: true (डिफ़ॉल्ट) - क्रम में निष्पादित, पहली त्रुटि पर रुकें
  • ordered: false - अनऑर्डर्ड, त्रुटि पर भी जारी रखें, बेहतर प्रदर्शन
  • bypassDocumentValidation - वैलिडेशन बायपास

अपसर्ट पैटर्न: updateOne में upsert: true जोड़कर अपसर्ट करें।

  1. - MongoDB में Multiple Insert के लिए Insert Statement लिखना

    Multiple insert के लिए MongoDB में insert() का उपयोग करें। Documents के साथ Collection बनाना > db.demo689.insert([ ... {ClientName:Chris,ClientAge:34,ClientCountryName:US}, ... {ClientName:David,ClientAge:28,ClientCountryName:UK}, ... {ClientName:Bob,ClientAge:39,ClientCountryName:AUS}, ..

  1. - MongoDB दस्तावेज अपडेट करते समय कस्टम वेरिएबल का उपयोग कैसे करें

    अपडेट करने के लिए update() का उपयोग करें और कस्टम वेरिएबल बनाने और उपयोग करने का सिंटैक्स निम्न है: var anyVariableName=yourValue; db.yourCollectionName.update({filter},{$set:{yourFieldName:yourVariableName}}); आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo600.insertOne({id:1,Name:Robert}

  1. - Java का उपयोग करके MongoDB कलेक्शन में एकाधिक डॉक्यूमेंट्स कैसे इन्सर्ट करें?

    आप MongoDB में मौजूदा कलेक्शन में insertMany() मेथड का उपयोग करके एकाधिक डॉक्यूमेंट्स इन्सर्ट कर सकते हैं। सिंटैक्स db.coll.insert(docArray) जहां, db डेटाबेस है। coll वह कलेक्शन (नाम) है जिसमें आप डॉक्यूमेंट्स इन्सर्ट करना चाहते हैं। docArray वह डॉक्यूमेंट्स की सरणी है जिसे आप इन्सर्ट करना चाहते ह