يقدم هذا الفصل كيفية إدراج بيانات المستند في 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 هي عمليات ذرية على مستوى واحد من المستند.