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

MongoDB में findOneAndUpdate() का उपयोग करके एकल दस्तावेज़ अपडेट करना

MongoDB में findOneAndUpdate(): एटॉमिक खोज और अपडेट

findOneAndUpdate() एक ही एटॉमिक ऑपरेशन में एक दस्तावेज़ को ढूंढता है, अपडेट करता है, और पुराना दस्तावेज़ वापस करता है (डिफ़ॉल्ट रूप से)। यह रेस कंडीशन से बचाता है।

सिंटैक्स

db.collection.findOneAndUpdate(filter, update, options)

नमूना डेटा

> db.demo328.insertOne({Name: "Chris", Marks: 67});
{ "acknowledged": true, "insertedId": ObjectId("5e516b19f8647eb59e56207a") }
> db.demo328.insertOne({Name: "David", Marks: 78});
{ "acknowledged": true, "insertedId": ObjectId("5e516b24f8647eb59e56207b") }
> db.demo328.insertOne({Name: "Bob", Marks: 97});
{ "acknowledged": true, "insertedId": ObjectId("5e516b2bf8647eb59e56207c") }

क्वेरी: David के Marks को 10 से बढ़ाना

$inc ऑपरेटर का उपयोग करके परमाणु रूप से वृद्धि करें।

> db.demo328.findOneAndUpdate({Name: "David"}, {$inc: {"Marks": 10}});
{ "_id": ObjectId("5e516b24f8647eb59e56207b"), "Name": "David", "Marks": 78 }

वापस किया गया दस्तावेज़ अपडेट से पहले की स्थिति दिखाता है (Marks: 78)।

सत्यापन

> db.demo328.find();
{ "Name": "Chris", "Marks": 67 }
{ "Name": "David", "Marks": 88 }  // अपडेट हुआ
{ "Name": "Bob", "Marks": 97 }

महत्वपूर्ण विकल्प

  • returnDocument: "after" — अपडेट बाद का दस्तावेज़ वापस करता है।
  • upsert: true — यदि कोई दस्तावेज़ नहीं मिलता तो नया बनाता है।
  • sort — एकाधिक मिलान होने पर कौन सा दस्तावेज़ अपडेट करना है, यह नियंत्रित करता है।
  1. - MongoDB findOne() में रेगुलर एक्सप्रेशन का उपयोग

    findOne() संग्रह पर निर्दिष्ट क्वेरी मानदंड को संतुष्ट करने वाला एक दस्तावेज़ लौटाता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo655.insertOne({subject:MySQL}); { acknowledged : true, insertedId : ObjectId(5ea050254deddd72997713cc) } > db.demo655.insertOne({subject:MongoDB}); { acknow

  1. - MongoDB Aggregate में $redact का उपयोग करना

    $redact documents के contents को documents themselves में stored information के आधार पर restrict करता है। Aggregate में $cond के साथ $redact का उपयोग कर सकते हैं। Collection बनाना > db.demo546.insertOne({Value1:10,Value2:20}); { acknowledged : true, insertedId : ObjectId(5e8e263f9e5f92834d7f05d7

  1. - MongoDB updateOne() और insertOne() का उपयोग

    MongoDB insertOne() एक डॉक्यूमेंट को कलेक्शन में डालता है, जबकि updateOne() क्वेरी फ़िल्टर के आधार पर कलेक्शन में एक डॉक्यूमेंट को अपडेट करता है। आइए डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo735.insertOne({id:1,Name:Chris}); { acknowledged : true, insertedId : ObjectId(5ead51b657bb72a1