MongoDB में db.collection.insertMany()
विधि एक संग्रह में कई दस्तावेज़ सम्मिलित करती है।
collection
दस्तावेज़ों को सम्मिलित करने के लिए संग्रह का नाम भाग है।
उदाहरण
यहां db.collection.insertMany()
. का उपयोग करने का एक उदाहरण दिया गया है pets
. नामक संग्रह में अनेक दस्तावेज़ सम्मिलित करने के लिए :
db.pets.insertMany([
{ _id: 1, name: "Wag", type: "Dog" },
{ _id: 2, name: "Bark", type: "Dog" },
{ _id: 3, name: "Meow", type: "Cat" }
])
परिणाम:
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] }
db.collection.insertMany()
विधि एक दस्तावेज़ देता है जिसमें शामिल हैं:
- एक बूलियन
acknowledged
true
. के रूप में यदि ऑपरेशन लिखित चिंता याfalse
. के साथ चलता है अगर लेखन चिंता अक्षम थी। _id
की एक सरणी प्रत्येक सफलतापूर्वक डाले गए दस्तावेज़ के लिए मान।
अब अगर हम db.collection.find()
. का उपयोग करते हैं संग्रह को देखने के लिए, हम नए जोड़े गए दस्तावेज़ देखेंगे।
db.pets.find()
परिणाम:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
इस मामले में, संग्रह में केवल हमारे तीन दस्तावेज़ हैं, और इसलिए केवल ये दस्तावेज़ लौटाए गए।
हालांकि, अगर संग्रह बड़ा था, तो हम परिणाम को केवल उन दस्तावेज़ों तक सीमित करने के लिए दस्तावेज़ आईडी का उपयोग कर सकते थे जिनमें हम रुचि रखते हैं।
db.pets.find({_id: {$in: [1,2,3]}})
परिणाम:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
यदि संग्रह मौजूद नहीं है तो क्या होगा?
यदि संग्रह मौजूद नहीं है, तो इसे बनाया जाता है, और इसमें दस्तावेज़ जोड़े जाते हैं।
यदि संग्रह पहले से मौजूद है, तो दस्तावेज़ों को बस इसमें जोड़ दिया जाता है (बशर्ते उनका _id
मान किसी मौजूदा के साथ विरोध नहीं करते हैं)।
जब मैंने यह उदाहरण बनाया, तो संग्रह मौजूद नहीं था, और इसलिए सम्मिलित ऑपरेशन ने इसे बनाया।
द _id
फ़ील्ड
_id
MongoDB में फ़ील्ड एक विशिष्ट पहचानकर्ता फ़ील्ड है।
जैसा कि पिछले उदाहरण में दिखाया गया है, आप अपना खुद का _id
प्रदान कर सकते हैं दस्तावेज़ में फ़ील्ड। यदि आप करते हैं, तो इसका मान संग्रह के भीतर अद्वितीय होना चाहिए। ऐसा इसलिए है क्योंकि आपका _id
फ़ील्ड का उपयोग दस्तावेज़ के विशिष्ट पहचानकर्ता के रूप में किया जाएगा।
यहां _id
प्रदान किए बिना दस्तावेज़ डालने का एक उदाहरण दिया गया है फ़ील्ड।
db.pets.insertMany([
{ name: "Bruce", type: "Bat" },
{ name: "Sweetie", type: "Honey Badger" }
])
परिणाम:
{ "acknowledged" : true, "insertedIds" : [ ObjectId("5fe30ef737b49e0faf1af215"), ObjectId("5fe30ef737b49e0faf1af216") ] }
_id
दस्तावेजों के मूल्य वापस कर दिए जाते हैं। हम इनका उपयोग केवल हमारे द्वारा डाले गए दस्तावेज़ों के संग्रह को खोजने के लिए कर सकते हैं।
लेकिन इस मामले में, आइए पूरे संग्रह को देखें।
db.pets.find()
परिणाम:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" } { "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }
हम देख सकते हैं कि हमारे दो नए दस्तावेज़ संग्रह में शामिल हैं।
ordered
पैरामीटर
db.collection.insertMany()
विधि ordered
. को भी स्वीकार करती है पैरामीटर। यह एक बूलियन पैरामीटर है जिसका डिफ़ॉल्ट मान true
. है .
ordered
पैरामीटर निर्दिष्ट करता है कि इंसर्ट ऑपरेशन ऑर्डर किया जाना चाहिए या अनियंत्रित।
अगर ordered
false
पर सेट है , दस्तावेज़ एक अनियंत्रित प्रारूप में डाले जाते हैं और mongod
. द्वारा पुन:व्यवस्थित किए जा सकते हैं प्रदर्शन बढ़ाने के लिए।
ऑर्डर किए गए इंसर्ट के साथ, यदि किसी एक दस्तावेज़ को सम्मिलित करने के दौरान कोई त्रुटि होती है, तो MongoDB सरणी में शेष दस्तावेज़ों को संसाधित किए बिना त्रुटि पर वापस आ जाता है।
अनियंत्रित इंसर्ट के साथ, यदि किसी एक दस्तावेज़ को सम्मिलित करने के दौरान कोई त्रुटि होती है, तो MongoDB शेष दस्तावेज़ों को सरणी में सम्मिलित करना जारी रखता है।
अधिक जानकारी
db.collection.insertMany()
विधि एक writeConcern
को भी स्वीकार करती है तर्क, जो लेखन कार्यों के लिए MongoDB से अनुरोध की गई पावती के स्तर का वर्णन करता है।
db.collection.insertMany()
. के लिए MongoDB दस्तावेज़ देखें अधिक जानकारी के लिए।