Python – درج داده (MongoDB Insert)
درج سند در MongoDB
در MongoDB، یک سند (Document) معادل یک رکورد در پایگاه دادههای SQL است.
درج در کلکسیون
برای درج یک رکورد یا سند در یک کلکسیون، از متد insert_one()
استفاده میکنیم.
اولین پارامتر متد insert_one()
یک دیکشنری است که شامل نامها و مقادیر هر فیلدی است که میخواهید در سند درج کنید.
مثال
درج یک رکورد در کلکسیون “customers”:
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
متد insert_one()
یک شیء از نوع InsertOneResult
برمیگرداند که یک ویژگی به نام inserted_id
دارد که شناسه (ID) سند درج شده را نگه میدارد.
مثال
درج یک رکورد دیگر در کلکسیون “customers” و بازگشت مقدار فیلد _id
:
mydict = { "name": "Peter", "address": "Lowstreet 27" }
x = mycol.insert_one(mydict)
print(x.inserted_id)
اگر فیلد _id
را مشخص نکنید، MongoDB یکی برای شما ایجاد کرده و به هر سند یک شناسه منحصر به فرد اختصاص میدهد.
درج چندین سند
برای درج چندین سند در یک کلکسیون در 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 list of the _id values of the inserted documents:
print(x.inserted_ids)
متد insert_many()
یک شیء از نوع InsertManyResult
برمیگرداند که ویژگی inserted_ids
را دارد که شناسههای اسناد درج شده را نگه میدارد.
درج چندین سند با شناسههای مشخص
اگر نمیخواهید MongoDB به صورت خودکار شناسههای منحصر به فرد برای اسناد شما اختصاص دهد، میتوانید فیلد _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 list of the _id values of the inserted documents:
print(x.inserted_ids)
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام