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

MongoDB दस्तावेज़ के एकल सूची आइटम को अपडेट करें और 1 से बढ़ाएं

MongoDB में एक सरणी के अंदर एकल तत्व को अपडेट करने के लिए, स्थिति ऑपरेटर $ (पहले मिलान वाले तत्व के लिए) के साथ $inc का उपयोग करें ताकि संख्यात्मक फील्ड बढ़ाया जा सके।

उदाहरण: उत्पाद विवरण संग्रह

> db.demo39.insertOne({"ProductDetails":[{"ProductName":"Product-1","ProductPrice":349}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176d54cfb11e5c34d898df") }
> db.demo39.insertOne({"ProductDetails":[{"ProductName":"Product-2","ProductPrice":998}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176d61cfb11e5c34d898e0") }
> db.demo39.insertOne({"ProductDetails":[{"ProductName":"Product-3","ProductPrice":145}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176d6acfb11e5c34d898e1") }

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

> db.demo39.find();

आउटपुट: प्रत्येक में एक उत्पाद वाली सरणी के साथ तीन दस्तावेज़।

विशिष्ट दस्तावेज़ में विशिष्ट उत्पाद मूल्य बढ़ाएं

> db.demo39.update(
    { "_id" : ObjectId("5e176d61cfb11e5c34d898e0"), 'ProductDetails.ProductName':"Product-2" },
    { $inc: { 'ProductDetails.$.ProductPrice': 1 } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

परिणाम जांचें

> db.demo39.find();

आउटपुट: Product-2 की कीमत अब 999 है; अन्य अपरिवर्तित।

व्याख्या

  • फिल्टर दस्तावेज़ को _id द्वारा और सरणी तत्व को ProductName द्वारा पहचानता है।
  • $ (स्थिति ऑपरेटर) फिल्टर से मेल खाने वाले पहले सरणी तत्व को संदर्भित करता है।
  • $inc उस तत्व के ProductPrice को 1 से बढ़ाता है।

सभी मिलान वाले तत्वों को अपडेट करने के लिए (MongoDB 3.6+)

पहले मिलान के बजाय सभी मिलान वाले सरणी तत्वों को अपडेट करने के लिए, फ़िल्टर्ड स्थितीय ऑपरेटर $[<identifier> के साथ arrayFilters का उपयोग करें:

> db.demo39.update(
    { "ProductDetails.ProductName": "Product-2" },
    { $inc: { "ProductDetails.$[elem].ProductPrice": 1 } },
    { arrayFilters: [ { "elem.ProductName": "Product-2" } ] }
);

नोट

पुराना update() विरासत है; नए कोड में updateOne()/updateMany() पसंद करें।

  1. - C# में एक ही चरण में सूची में किसी आइटम का इंडेक्स कैसे ढूंढें

    एक ही पंक्ति में किसी आइटम का इंडेक्स प्राप्त करने के लिए, FindIndex() और Contains() विधि का उपयोग करें। a.Contains(Tennis)); उपरोक्त, हमने FindIndex() का उपयोग करके किसी तत्व का इंडेक्स प्राप्त किया, जिसमें उस विशिष्ट तत्व के लिए Contains विधि द्वारा सहायता की गई है। यहां पूरा कोड है: उदाहरण usin

  1. - Python में try और except

    Python में अपवाद प्रबंधन का उपयोग करने के लिए, हमें पहले सभी except क्लॉज को पकड़ने की आवश्यकता है। Python अपवादों को पकड़ने के लिए try और except कीवर्ड प्रदान करता है। try ब्लॉक कोड को स्टेटमेंट दर स्टेटमेंट निष्पादित किया जाएगा। हालांकि, यदि कोई अपवाद होता है, तो शेष try कोड निष्पादित नहीं होगा

  1. - Python लिस्ट एलिमेंट मान कैसे अपडेट करें?

    Python लिस्ट ऑब्जेक्ट म्यूटेबल है। इसलिए लिस्ट ऑब्जेक्ट को अपडेट करना संभव है। लिस्ट अपडेट करने के लिए, उसके एक्सेस का उपयोग करके किसी भी आइटम को नया मान असाइन करें। उदाहरण के लिए, यदि आप 5वें आइटम (इंडेक्स 0 से गिनती) को उसके पहले के मान का दोगुना करना चाहते हैं: >>> L1 = [10, 50, 20, 9,