MongoDB में db.collection.insert() विधि एक संग्रह में एक दस्तावेज़ या दस्तावेज़ सम्मिलित करती है।
collection भाग दस्तावेज़ों को सम्मिलित करने के लिए संग्रह का नाम है।
उदाहरण
यहां db.collection.insert() . का उपयोग करने का एक उदाहरण दिया गया है pets . नामक संग्रह में अनेक दस्तावेज़ सम्मिलित करने के लिए :
db.pets.insert([
{ _id: 1, name: "Wag", type: "Dog" },
{ _id: 2, name: "Bark", type: "Dog" },
{ _id: 3, name: "Meow", type: "Cat" }
]) परिणाम:
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 3,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
db.collection.insert() विधि एक वस्तु लौटाती है जिसमें सम्मिलित ऑपरेशन की स्थिति होती है।
लौटाई गई वस्तु इस बात पर निर्भर करती है कि एक दस्तावेज़ डाला गया था या एकाधिक दस्तावेज़।
- जब कोई एकल दस्तावेज़ डाला जाता है, तो यह एक
WriteResultदेता है वस्तु। - जब दस्तावेज़ों की एक सरणी डाली जाती है, तो यह एक
BulkWriteResultदेता है वस्तु।
हम देख सकते हैं कि उपरोक्त उदाहरण ने एक BulkWriteResult लौटाया है वस्तु। ऐसा इसलिए है क्योंकि हमने दस्तावेज़ों की एक सरणी जोड़ी है। अगर सरणी में केवल एक तत्व होता तो भी यह ऐसा करता।
अब अगर हम 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.insert(
{ name: "Bruce", type: "Bat" }
) परिणाम:
WriteResult({ "nInserted" : 1 })
ध्यान दें कि इस मामले में यह विधि WriteResult returns लौटाती है BulkWriteResult . के बजाय ऑब्जेक्ट वस्तु। ऐसा इसलिए है क्योंकि हमने एक ही दस्तावेज़ डाला (और यह एक सरणी में नहीं था)।
अब चलिए फिर से संग्रह पर नज़र डालते हैं।
db.pets.find() परिणाम:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : ObjectId("5fe323d837b49e0faf1af218"), "name" : "Bruce", "type" : "Bat" }
हम देख सकते हैं कि हमारा नया दस्तावेज़ संग्रह में शामिल है, और इसमें एक _id है स्वचालित रूप से जेनरेट किए गए मान के साथ फ़ील्ड।
ordered पैरामीटर
db.collection.insert() विधि ordered . को भी स्वीकार करती है पैरामीटर। यह एक बूलियन पैरामीटर है जिसका डिफ़ॉल्ट मान true . है .
ordered पैरामीटर निर्दिष्ट करता है कि इंसर्ट ऑपरेशन ऑर्डर किया जाना चाहिए या अनियंत्रित।
अगर ordered false पर सेट है , दस्तावेज़ एक अनियंत्रित प्रारूप में डाले जाते हैं और mongod . द्वारा पुन:व्यवस्थित किए जा सकते हैं प्रदर्शन बढ़ाने के लिए।
ऑर्डर किए गए इंसर्ट के साथ, यदि किसी एक दस्तावेज़ को सम्मिलित करने के दौरान कोई त्रुटि होती है, तो MongoDB सरणी में शेष दस्तावेज़ों को संसाधित किए बिना त्रुटि पर वापस आ जाता है।
अनियंत्रित इंसर्ट के साथ, यदि किसी एक दस्तावेज़ को सम्मिलित करने के दौरान कोई त्रुटि होती है, तो MongoDB शेष दस्तावेज़ों को सरणी में सम्मिलित करना जारी रखता है।
अधिक जानकारी
db.collection.insert() विधि एक writeConcern को भी स्वीकार करती है तर्क, जो लेखन कार्यों के लिए MongoDB से अनुरोध की गई पावती के स्तर का वर्णन करता है।
db.collection.insert() . के लिए MongoDB दस्तावेज़ देखें अधिक जानकारी के लिए।