درج (Insert)
اینجا «درج سند (Insert Document)» را یاد می گیریم. «سند (Document)» مثل «رکورد» در SQL است. با متدهای insert_one() و insert_many() می توانیم داده را داخل کالکشن ذخیره کنیم. سپس شناسه _id را می گیریم.
درج سند MongoDB با insert_one
برای درج یک سند، از insert_one() استفاده کن. ورودی آن یک دیکشنری از فیلدهاست.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)
برگرداندن شناسه درج شده (_id)
خروجی InsertOneResult است. با inserted_id شناسه سند را می گیریم.
mydict = { "name": "Peter", "address": "Lowstreet 27" }
x = mycol.insert_one(mydict)
print(x.inserted_id)
نکته: اگر _id را ندهی، MongoDB خودش یک شناسه یکتا می سازد.
درج چند سند با insert_many
برای درج چند سند، از insert_many() استفاده کن. ورودی آن لیست دیکشنری هاست.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "name": "Amy", "address": "Apple st 652" },
{ "name": "Hannah", "address": "Mountain 21" },
{ "name": "Michael", "address": "Valley 345" },
{ "name": "Sandy", "address": "Ocean blvd 2" },
{ "name": "Betty", "address": "Green Grass 1" },
{ "name": "Richard", "address": "Sky st 331" },
{ "name": "Susan", "address": "One way 98" },
{ "name": "Vicky", "address": "Yellow Garden 2" },
{ "name": "Ben", "address": "Park Lane 38" },
{ "name": "William", "address": "Central st 954" },
{ "name": "Chuck", "address": "Main Road 989" },
{ "name": "Viola", "address": "Sideway 1633" }
]
x = mycol.insert_many(mylist)
print(x.inserted_ids)
خروجی InsertManyResult است. با inserted_ids همه شناسه ها را می بینی.
درج چند سند با شناسه دلخواه (_id)
می توانی _id را خودت بدهی. اما باید یکتا باشد.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "_id": 1, "name": "John", "address": "Highway 37" },
{ "_id": 2, "name": "Peter", "address": "Lowstreet 27" },
{ "_id": 3, "name": "Amy", "address": "Apple st 652" },
{ "_id": 4, "name": "Hannah", "address": "Mountain 21" },
{ "_id": 5, "name": "Michael", "address": "Valley 345" },
{ "_id": 6, "name": "Sandy", "address": "Ocean blvd 2" },
{ "_id": 7, "name": "Betty", "address": "Green Grass 1" },
{ "_id": 8, "name": "Richard", "address": "Sky st 331" },
{ "_id": 9, "name": "Susan", "address": "One way 98" },
{ "_id": 10, "name": "Vicky", "address": "Yellow Garden 2" },
{ "_id": 11, "name": "Ben", "address": "Park Lane 38" },
{ "_id": 12, "name": "William", "address": "Central st 954" },
{ "_id": 13, "name": "Chuck", "address": "Main Road 989" },
{ "_id": 14, "name": "Viola", "address": "Sideway 1633" }
]
x = mycol.insert_many(mylist)
print(x.inserted_ids)
هشدار: دو سند با _id یکسان، خطا می دهد.
گام های عملی
- به دیتابیس وصل شو و کالکشن بگیر.
- برای یک سند،
insert_oneرا اجرا کن. - شناسه را با
inserted_idنمایش بده. - برای چند سند،
insert_manyاستفاده کن. - در صورت نیاز،
_idیکتا تعیین کن.
لینک های داخلی
اگر هنوز کالکشن نداری، از ایجاد کالکشن (Collection) شروع کن. برای بازیابی داده ها، صفحه جستجو در MongoDB (Find) را ببین.
جمع بندی سریع
insert_oneیک سند درج می کند.insert_manyچند سند درج می کند.inserted_idشناسه سند را می دهد.- بدون
_id، شناسه یکتا خودکار ساخته می شود.