खोज…


वाक्य - विन्यास

  • सम्मिलित करें ( दस्तावेज़ या दस्तावेज़ों की सरणी )
  • सम्मिलित करें ('दस्तावेज़', {राइटऑनकार्न: 'दस्तावेज़'})
  • सम्मिलित करें ({[दस्तावेज़ 1, दस्तावेज़ 2, ...]}, {लेखनसंरचना: दस्तावेज़, आदेश दिया: बूलियन})
  • खोजें ( क्वेरी , प्रोजेक्शन )
  • findOne ( क्वेरी , प्रोजेक्शन )
  • अद्यतन ( क्वेरी , अद्यतन )
  • अपडेट ( क्वेरी , अपडेट , {upsert: बूलियन, राइटकॉर्न: दस्तावेज़})
  • updateMany ( क्वेरी , अपडेट , {upsert: बूलियन, राइटकॉर्न: दस्तावेज़})
  • प्रतिस्थापन ( क्वेरी , प्रतिस्थापन , {upsert: बूलियन, राइटकॉर्न: दस्तावेज़})
  • निकालें ( क्वेरी , justOne )
  • findAndModify ( क्वेरी , सॉर्ट , अपडेट , विकल्प [वैकल्पिक] )

टिप्पणियों

किसी दस्तावेज़ को अद्यतन करना और हटाना सावधानीपूर्वक किया जाना चाहिए। चूंकि ऑपरेशन कई दस्तावेजों के लिए प्रभावित हो सकता है।

सृजन करना

db.people.insert({name: 'Tom', age: 28});

या

db.people.save({name: 'Tom', age: 28});

save साथ अंतर यह है कि यदि पास किए गए दस्तावेज़ में _id फ़ील्ड है, यदि कोई दस्तावेज़ पहले से ही उस _id साथ मौजूद है, तो इसे नए के रूप में जोड़े जाने के बजाय अपडेट किया जाएगा।

एक संग्रह में दस्तावेज़ों को सम्मिलित करने के दो नए तरीके, MongoDB 3.2.x में: -

केवल एक रिकॉर्ड डालने के लिए insertOne का उपयोग करें: -

db.people.insertOne({name: 'Tom', age: 28});

कई रिकॉर्ड सम्मिलित करने के लिए insertMany का उपयोग करें: -

db.people.insertMany([{name: 'Tom', age: 28},{name: 'John', age: 25}, {name: 'Kathy', age: 23}])

ध्यान दें कि insert संस्करण 3.0 के बाद से हर आधिकारिक भाषा चालक में पदावनत के रूप में डाला गया है। पूर्ण भेद यह है कि शेल विधियां वास्तव में विधि को लागू करने में अन्य ड्राइवरों से पीछे रह गईं। यही बात अन्य सभी CRUD तरीकों के लिए भी लागू होती है

अपडेट करें

संपूर्ण ऑब्जेक्ट को अपडेट करें:

db.people.update({name: 'Tom'}, {age: 29, name: 'Tom'})

// New in MongoDB 3.2
db.people.updateOne({name: 'Tom'},{age: 29, name: 'Tom'}) //Will replace only first matching document.

db.people.updateMany({name: 'Tom'},{age: 29, name: 'Tom'}) //Will replace all matching documents.

या सिर्फ एक दस्तावेज़ के एक क्षेत्र को अद्यतन करें। इस मामले में age :

db.people.update({name: 'Tom'}, {$set: {age: 29}})

आप तीसरे पैरामीटर को जोड़कर एक साथ कई दस्तावेज़ भी अपडेट कर सकते हैं। यह क्वेरी सभी दस्तावेजों को अपडेट करेगी जहां नाम Tom बराबर है:

db.people.update({name: 'Tom'}, {$set: {age: 29}}, {multi: true})

// New in MongoDB 3.2
db.people.updateOne({name: 'Tom'},{$set:{age: 30}) //Will update only first matching document.

db.people.updateMany({name: 'Tom'},{$set:{age: 30}}) //Will update all matching documents.

यदि कोई नया फ़ील्ड अपडेट के लिए आ रहा है, तो उस फ़ील्ड को दस्तावेज़ में जोड़ा जाएगा।

db.people.updateMany({name: 'Tom'},{$set:{age: 30, salary:50000}})// Document will have `salary` field as well.

यदि किसी दस्तावेज़ को बदलने की आवश्यकता है,

db.collection.replaceOne({name:'Tom'}, {name:'Lakmal',age:25,address:'Sri Lanka'})

इस्तेमाल किया जा सकता है।

नोट : ऑब्जेक्ट को पहचानने के लिए आपके द्वारा उपयोग किए जाने वाले फ़ील्ड अपडेट किए गए दस्तावेज़ में सहेजे जाएंगे। अद्यतन अनुभाग में परिभाषित नहीं किए जाने वाले फ़ील्ड को दस्तावेज़ से निकाल दिया जाएगा।

हटाएं

क्वेरी पैरामीटर से मेल खाते सभी दस्तावेज़ हटाता है:

// New in MongoDB 3.2
db.people.deleteMany({name: 'Tom'})

// All versions
db.people.remove({name: 'Tom'})

या सिर्फ एक

// New in MongoDB 3.2
db.people.deleteOne({name: 'Tom'})

// All versions
db.people.remove({name: 'Tom'}, true)

MongoDB का निष्कासन remove() विधि। यदि आप इस कमांड को बिना किसी तर्क के या बिना खाली तर्क के निष्पादित करते हैं तो यह संग्रह से सभी दस्तावेजों को हटा देगा।

db.people.remove();

या

db.people.remove({});

पढ़ें

उन people संग्रह के लिए क्वेरी, जिनके पास 'Tom' मान के साथ name फ़ील्ड है:

db.people.find({name: 'Tom'})

या सिर्फ पहले एक:

db.people.findOne({name: 'Tom'})

आप यह भी निर्दिष्ट कर सकते हैं कि फ़ील्ड चयन पैरामीटर पास करके कौन से फ़ील्ड वापस करने हैं। निम्नलिखित _id फ़ील्ड को बाहर करेगा और केवल age क्षेत्र शामिल करेगा:

db.people.find({name: 'Tom'}, {_id: 0, age: 1})

नोट: डिफ़ॉल्ट रूप से, _id फ़ील्ड वापस कर दी जाएगी, भले ही आप इसके लिए न पूछें। यदि आप _id वापस नहीं लेना चाहते हैं, तो आप केवल पिछले उदाहरण का अनुसरण कर सकते हैं और _id लिए निर्दिष्ट करके पूछ सकते हैं _id: 0 (या _id: false ) निर्दिष्ट करके। यदि आप सब रिकॉर्ड खोजना चाहते हैं जैसे एड्रेस ऑब्जेक्ट में देश शामिल है। , शहर, आदि

db.people.find({'address.country': 'US'})

आवश्यकता होने पर फ़ील्ड भी निर्दिष्ट करें

db.people.find({'address.country': 'US'}, {'name': true, 'address.city': true})Remember that the result has a `.pretty()` method that pretty-prints resulting JSON:

db.people.find().pretty()

अधिक अपडेट ऑपरेटर

दस्तावेज़ को अपडेट करते समय आप $set अलावा अन्य ऑपरेटरों का उपयोग कर सकते हैं। $push ऑपरेटर आपको किसी सरणी में मान को पुश करने की अनुमति देता है, इस मामले में हम nicknames सरणी में एक नया उपनाम जोड़ेंगे।

db.people.update({name: 'Tom'}, {$push: {nicknames: 'Tommy'}})
// This adds the string 'Tommy' into the nicknames array in Tom's document.

$pull ऑपरेटर $push के विपरीत है, आप सरणियों से विशिष्ट आइटम खींच सकते हैं।

db.people.update({name: 'Tom'}, {$pull: {nicknames: 'Tommy'}})
// This removes the string 'Tommy' from the nicknames array in Tom's document.

$pop ऑपरेटर आपको किसी सरणी से पहले या अंतिम मान को निकालने की अनुमति देता है। मान लीजिए कि टॉम के दस्तावेज़ में भाई-बहन नामक एक संपत्ति है, जिसका मूल्य ['Marie', 'Bob', 'Kevin', 'Alex']

db.people.update({name: 'Tom'}, {$pop: {siblings: -1}})
// This will remove the first value from the siblings array, which is 'Marie' in this case.


db.people.update({name: 'Tom'}, {$pop: {siblings: 1}})
// This will remove the last value from the siblings array, which is 'Alex' in this case.

कई दस्तावेजों को अद्यतन करते समय "बहु" पैरामीटर

एक संग्रह में कई दस्तावेज़ों को अपडेट करने के लिए, बहु विकल्प को सही पर सेट करें।

db.collection.update(
   query,
   update,
   {
     upsert: boolean,
     multi: boolean,
     writeConcern: document
   }
)

बहु वैकल्पिक है। यदि यह सही है, तो क्वेरी मापदंड को पूरा करने वाले कई दस्तावेज़ अपडेट करें। यदि गलत पर सेट किया गया है, तो एक दस्तावेज़ अपडेट करता है। मूल मूल्य गलत है।

db.mycol.find () {"_id": ObjectId (598354878df45ec5), "शीर्षक": "MongoDB अवलोकन"} {"_id": ObjectId (5983548784545), "शीर्षक": "NoSQL अवलोकन"} {"_id": ऑब्जेक्टआईड (59835487adf45ec7), "शीर्षक": "ट्यूटोरियल प्वाइंट अवलोकन"}

db.mycol.update ({'शीर्षक': 'MongoDB अवलोकन'}, {$ सेट: {'शीर्षक': 'न्यू MongoDB ट्यूटोरियल'}}}, {बहु: सच})

एम्बेडेड दस्तावेजों का अद्यतन।

निम्नलिखित स्कीमा के लिए:

{name: 'Tom', age: 28, marks: [50, 60, 70]}

टॉम के निशानों को 55 पर अपडेट करें जहां निशान 50 हैं (स्थितीय ऑपरेटर $ का उपयोग करें):

db.people.update({name: "Tom", marks: 50}, {"$set": {"marks.$": 55}})

निम्नलिखित स्कीमा के लिए:

{name: 'Tom', age: 28, marks: [{subject: "English", marks: 90},{subject: "Maths", marks: 100}, {subject: "Computes", marks: 20}]}

अद्यतन टॉम के अंग्रेजी अंक 85:

db.people.update({name: "Tom", "marks.subject": "English"},{"$set":{"marks.$.marks": 85}})

उपरोक्त उदाहरण के बारे में बताते हुए:

{Name: "Tom", "marks.subject": "English"} का उपयोग करके आपको अंक सरणी में ऑब्जेक्ट की स्थिति मिल जाएगी, जहां विषय अंग्रेजी है। "अंक। $। निशान।" में, अंक सरणी की उस स्थिति में अद्यतन करने के लिए $ का उपयोग किया जाता है

एक ऐरे में वैल्यू अपडेट करें

स्थितीय $ ऑपरेटर सरणी में तत्व की स्थिति को स्पष्ट रूप से निर्दिष्ट किए बिना अद्यतन करने के लिए सरणी में एक तत्व की पहचान करता है।

निम्नलिखित दस्तावेजों के साथ एक संग्रह छात्रों पर विचार करें:

{ "_id" : 1, "grades" : [ 80, 85, 90 ] }
{ "_id" : 2, "grades" : [ 88, 90, 92 ] }
{ "_id" : 3, "grades" : [ 85, 100, 90 ] }

पहले दस्तावेज़ में ग्रेड सरणी में 80 से 82 अपडेट करने के लिए, यदि आप एरे में तत्व की स्थिति नहीं जानते हैं, तो स्थितीय $ ऑपरेटर का उपयोग करें:

db.students.update(
   { _id: 1, grades: 80 },
   { $set: { "grades.$" : 82 } }
)


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow