این فصل نحوه وارد کردن دادههای سند به MongoDB با استفاده از مونگو شل را معرفی میکند.
وارد کردن یک سند
برای وارد کردن یک سند به یک مجموعه، از روش db.collection.insertOne() استفاده میشود.
اگر سند شامل فیلد _id نباشد، MongoDB به طور خودکار یک ObjectId یکتا برای فیلد _id ایجاد خواهد کرد.
توجه:
ObjectIdیک مولفه داخلی برای ایجاد شناسه یکتا در MongoDB استفاده شده برای تولید شناسه.
مثال: وارد کردن یک سند به مجموعه inventory:
db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
خروجی:
{
"acknowledged" : true,
"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}
در صورت موفقیت آمیز بودن وارد کردن، کلید اصلی را برمیگرداند. فیلد insertedId شناسه یکتای ایجاد شده به طور خودکار توسط MongoDB است. اگر مجموعه inventory وجود نداشته باشد، به طور خودکار ایجاد میشود.
جستجوی دادههای سند وارد شده:
> 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 عملیات هستند که در سطح تک سند اتمیک هستند.