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

MongoDB में एक ही अपडेट में $set और $push कैसे करें?

MongoDB में सिंगल अपडेट में $set और $push संयोजित करना

एक ही अपडेट ऑपरेशन में फील्ड सेट करने और ऐरे में तत्व जोड़ने के लिए update() का उपयोग करें।

कलेक्शन बनाना

> db.dem0143.insertOne({"StudentId":1,"Details":{"Name":"Chris"}});
{ "acknowledged": true, "insertedId": ObjectId("5e32eb9efdf09dd6d08539b7") }
> db.dem0143.insertOne({"StudentId":2,"Details":{"Name":"David"}});
{ "acknowledged": true, "insertedId": ObjectId("5e32eba5fdf09dd6d08539b8") }

अपडेट से पहले

> db.dem0143.find();
{ "_id": ObjectId("5e32eb9efdf09dd6d08539b7"), "StudentId": 1, "Details": { "Name": "Chris" } }
{ "_id": ObjectId("5e32eba5fdf09dd6d08539b8"), "StudentId": 2, "Details": { "Name": "David" } }

$set और $push संयोजित क्वेरी

> db.dem0143.update({_id: ObjectId("5e32eba5fdf09dd6d08539b8")}, {$push: {StudentAge:21}, $set: {"Details.Name":"John Doe"}});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

अपडेट के बाद

> db.dem0143.find();

व्याख्या

  • $set: मौजूदा फील्ड को अपडेट करता है (Details.Name को "John Doe" में बदलता है)
  • $push: नया ऐरे फील्ड बनाता है या मौजूदा ऐरे में तत्व जोड़ता है (StudentAge ऐरे में 21 जोड़ता है)
  • दोनों ऑपरेटर एक ही अपडेट ऑब्जेक्ट में निर्दिष्ट हैं
  • क्वेरी _id द्वारा विशिष्ट डॉक्यूमेंट को लक्षित करती है

महत्वपूर्ण नोट

  • यदि StudentAge मौजूद नहीं है, तो $push नया ऐरे बनाता है
  • यदि StudentAge पहले से ऐरे है, तो मान जोड़ता है
  • आधुनिक MongoDB में updateOne() का उपयोग करें
  1. MongoDB को एक कमांड में कैसे रोकें? MongoDB को एक कमांड में कैसे रोकें?

    MongoDB को एक ही कमांड में रोकने के लिए, निम्न सिंटैक्स का उपयोग करें: mongo --eval db.getSiblingDB(admin).shutdownServer() आइए उपरोक्त सिंटैक्स को लागू करके MongoDB को एक कमांड में रोकते हैं। सबसे पहले, शॉर्टकट कुंजी का उपयोग करें: Ctrl + C क्वेरी इस प्रकार है: mongo --eval db.getSiblingDB(admin).

  1. - MongoDB में $push के साथ काम करें

    आइए एक कलेक्शन बनाते हैं: > db.demo738.insertOne({Subjects:[C,C++]}); { acknowledged : true, insertedId : ObjectId(5ead696557bb72a10bcf0661) } > db.demo738.insertOne({Subjects:[MySQL,PL/SQL]}); { acknowledged : true, insertedId : ObjectId(5ead696657bb72a10bcf0662) } find() से सभी डॉक्यूमेंट्स

  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1: