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

MongoDB में फ़ील्ड केवल तभी इन्सर्ट करें जब वह गायब हो

MongoDB में $exists: false कंडीशन से गायब फ़ील्ड सेट करना

केवल उन डॉक्यूमेंट में फ़ील्ड जोड़ें जहां वह फ़ील्ड मौजूद नहीं है, $exists: false क्वेरी के साथ $set और multi: true उपयोग करके।

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.missingDocumentDemo.insertOne({"StudentFirstName": "Adam", "StudentLastName": "Smith"});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fb1eedc6604c74817ce6") }
> db.missingDocumentDemo.insertOne({"StudentFirstName": "Carol", "StudentLastName": "Taylor"});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fb29edc6604c74817ce7") }
> db.missingDocumentDemo.insertOne({"StudentFirstName": "David", "StudentLastName": "Miller", "StudentAge": 21});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fb40edc6604c74817ce8") }

सभी डॉक्यूमेंट देखें

> db.missingDocumentDemo.find().pretty();
{ "_id": ObjectId("5cd3fb1eedc6604c74817ce6"), "StudentFirstName": "Adam", "StudentLastName": "Smith" }
{ "_id": ObjectId("5cd3fb29edc6604c74817ce7"), "StudentFirstName": "Carol", "StudentLastName": "Taylor" }
{ "_id": ObjectId("5cd3fb40edc6604c74817ce8"), "StudentFirstName": "David", "StudentLastName": "Miller", "StudentAge": 21 }

StudentAge फ़ील्ड केवल गायब होने पर सेट करें (23)

> db.missingDocumentDemo.update(
  {"StudentAge": {$exists: false}},
  {$set: {"StudentAge": 23}},
  {"multi": true}
);
WriteResult({ "nMatched": 2, "nUpserted": 0, "nModified": 2 })

अपडेट के बाद चेक करें

> db.missingDocumentDemo.find().pretty();
{ "_id": ObjectId("5cd3fb1eedc6604c74817ce6"), "StudentFirstName": "Adam", "StudentLastName": "Smith", "StudentAge": 23 }
{ "_id": ObjectId("5cd3fb29edc6604c74817ce7"), "StudentFirstName": "Carol", "StudentLastName": "Taylor", "StudentAge": 23 }
{ "_id": ObjectId("5cd3fb40edc6604c74817ce8"), "StudentFirstName": "David", "StudentLastName": "Miller", "StudentAge": 21 }

व्याख्या

  • Adam और Carol में StudentAge नहीं था → 23 सेट हुआ
  • David में पहले से StudentAge: 21 था → अपरिवर्तित रहा
  • nMatched: 2 - दो डॉक्यूमेंट मैच हुए
  • nModified: 2 - दो डॉक्यूमेंट बदले

आधुनिक सिंटैक्स

db.missingDocumentDemo.updateMany(
  {StudentAge: {$exists: false}},
  {$set: {StudentAge: 23}}
)

उपयोग के मामले

  • डिफ़ॉल्ट वैल्यू बैकफिल करना
  • स्कीमा माइग्रेशन में नया फ़ील्ड जोड़ना
  • मौजूदा डेटा ओवरराइट किए बिना डिफ़ॉल्ट सेट करना
  1. - MongoDB में केवल एक दस्तावेज़ हटाएं

    MongoDB में केवल एक दस्तावेज़ हटाने के लिए, remove() का उपयोग करें। आइए दस्तावेजों के साथ एक संग्रह बनाएं −> db.demo165.insertOne({"ClientId":101,"ClientName":"Chris","ClientAge":34}); {    "acknowledged" : true,    "

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

    MongoDB में bulkWrite() का उपयोग करके सशर्त अपसर्ट और एकाधिक ऑपरेशन करना MongoDB में एक ही ऑपरेशन में एकाधिक राइट ऑपरेशन (अपडेट, इन्सर्ट, अपसर्ट) करने के लिए bulkWrite() का उपयोग करें। यह सशर्त अपसर्ट लॉजिक के लिए आदर्श है। उदाहरण: संग्रह और दस्तावेज़ बनाना > db.demo428.insertOne({ Name : Chris,

  1. - MongoDB डॉक्यूमेंट में केवल एक मान को इंक्रीमेंट कैसे करें?

    MongoDB में केवल एक मान को अपडेट और इंक्रीमेंट करने के लिए update() के साथ $inc का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo698.insertOne({Score:78}); { acknowledged : true, insertedId : ObjectId(5ea6d8a4551299a9f98c9398) } > db.demo698.insertOne({Score:56}); { acknowledged : true, inse