يقدم هذا الفصل كيفية إدراج بيانات المستند في MongoDB باستخدام mongo shell.

إدراج مستند واحد

تُستخدم الطريقة db.collection.insertOne() لإدراج مستند واحد في مجموعة.

إذا لم يُحدد المستند حقل _id، سيقوم MongoDB تلقائيًا بتوليد ObjectId فريد لحقل _id.

ملاحظة: ObjectId هو مُولِّد الهوية الفريدة المضمَّن في MongoDB المستخدم لتوليد الهويات.

مثال: إدراج مستند في مجموعة المخزون:

db.inventory.insertOne(
   { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)

الإرجاع:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}

إذا كان الإدراج ناجحًا، يُعيد المفتاح الرئيسي. حقل insertedId هو الهوية الفريدة التي تم إنشاؤها تلقائيًا بواسطة MongoDB. إذا لم تكن مجموعة المخزون موجودة، يتم إنشاؤها تلقائيًا.

استعلام بيانات المستند المدرج:

> db.inventory.find( { item: "canvas" } )
{ "_id" : ObjectId("609bf11dfc901345cafc438a"), "item" : "canvas", "qty" : 100, "tags" : [ "cotton" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" } }

باستخدام الطريقة find، أُدخل شرط الاستعلام للعثور على بيانات المستند حيث يكون item هو "canvas".

إدراج عدة مستندات

تستطيع الطريقة db.collection.insertMany() إدراج عدة مستندات في مجموعة.

مثال: إدراج بيانات ثلاثة مستندات عن طريق تمرير مصفوفة إلى الطريقة insertMany:

db.inventory.insertMany([
   { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

قيمة الإرجاع:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("609bf30ffc901345cafc438b"),
		ObjectId("609bf30ffc901345cafc438c"),
		ObjectId("609bf30ffc901345cafc438d")
	]
}

يُعيد معرّفات الثلاثة مستندات الجديدة المُدرجة.

سلوك الإدراج

إنشاء المجموعة

في MongoDB، ليس هناك حاجة لإنشاء مجموعة مُسبقًا. عند إدراج البيانات لأول مرة، إذا لم تكن المجموعة موجودة، يتم إنشاؤها تلقائيًا.

حقل _id

في MongoDB، يحتوي كل مستند مُخزَّن في مجموعة على حقل _id فريد كمفتاح أساسي. إذا الغى المستند المدرج حقل _id، يقُوم مشغل MongoDB تلقائيًا بتوليد ObjectId لحقل _id.

الذرية

جميع عمليات الكتابة في MongoDB هي عمليات ذرية على مستوى واحد من المستند.