Python MongoDB Insert Document

وارد کردن محتوا به داخل مجموعه

سند (document) در MongoDB همان نقش رکورد در SQL را دارد.

برای وارد کردن یک رکورد، یا همان سند 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)

print(x)

خروجی:

برگرداندن آیدی فیلد

تابع شیء insert_one() یک شیء InsertOneResult را برمی‌گرداند که دارای خصوصیت inserted_id است. این خصوصیت آیدی سند وارد شده را در خود نگه می‌دارد.


import pymongo

myclient = pymongo.MongoClient('mongodb://localhost:27017/')
mydb = myclient['mydatabase']
mycol = mydb["customers"]

mydict = { "name": "Peter", "address": "Lowstreet 27" }

x = mycol.insert_one(mydict)

print(x.inserted_id)

خروجی:

اگر برای فیلد، آیدی تعیین نکنید، MongoDB یک آیدی یکتا به صورت خودکار برای هر سند اضافه می‌کند. مانند مثال بالا که برای فیلد آیدی اضافه نکردیم و 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 یه صورت خودکار برای سندهای وارد شد آیدی یکتا تعیین کند، می‌توانید خودتان آیدی فیلد را در هنگام وارد کردن سند یا سندها مشخص کنید.

به خاطر داشته باشید که آیدی‌ها باید یکتا باشند و دو سند نمی‌توانند دارای آیدی یکسانی باشند.


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 a list of the _id values of the inserted documents:
print(x.inserted_ids)

خروجی: