با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش پایتون ، را دنبال می کنند. در قسمت قبلی به ساخت Collection در MongoDB پرداختیم ، در این جلسه قصد داریم به آموزش درج Document در کالکشن MongoDB در پایتون و درج چند Document در Collection بپردازیم.
یک Document در MongoDB معادل یک رکورد در پایگاه های داده SQL است.
برای درج یک Document در کالکشن، از تابع ()insert_one استفاده می کنیم.
اولین پارامتر این تابع یک دیکشنری حاوی مقادیر و کلید ها برای هر فیلد Document است.
در مثال زیر یک document را در کالکشن customers درج کرده ایم:
1 2 3 4 5 6 7 8 9 | 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) |
تایع ()insert_one یک شی InsertOneResult را بر می گرداند که یک خاصیت به نام inserted_id دارد.
این خاصیت یا Property آی دی سند درج شده را در خود نگه می دارد.
1 2 3 4 5 | mydict = { "name": "Peter", "address": "Lowstreet 27" } x = mycol.insert_one(mydict) print(x.inserted_id) |
خروجی:
C:\Users\My Name>python demo_mongodb_insert_id.py ۵b1910482ddb101b7042fcd7 |
اگر شما هیچ id فیلدی تعریف نکنید، MongoDB یک id منحصر به فرد برای هر فیلد اضافه می کند.
در مثال بالا هیچ id تعریف نکردیم و MongoDB یک id منحصر به فرد برای document ایجاد کرده است.
از تابع ()insert_many برای درج چند document در Collection استفاده می کنیم.
اولین پارامتر این تابع لیستی از دیکشنری هایی است که حاوی اطلاعات شما برای درج در کالکشن است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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) |
خروجی:
C:\Users\My Name>python demo_mongodb_insert_many.py [ObjectId(‘5b19112f2ddb101964065487’), ObjectId(‘5b19112f2ddb101964065488’), ObjectId(‘5b19112f2ddb101964065489’), ObjectId(‘5b19112f2ddb10196406548a’), ObjectId(‘5b19112f2ddb10196406548b’), ObjectId(‘5b19112f2ddb10196406548c’), ObjectId(‘5b19112f2ddb10196406548d’), ObjectId(‘5b19112f2ddb10196406548e’), ObjectId(‘5b19112f2ddb10196406548f’), ObjectId(‘5b19112f2ddb101964065490’), ObjectId(‘5b19112f2ddb101964065491’), ObjectId(‘5b19112f2ddb101964065492’)] |
این تابع نیز یک شی InsertManyResult بر می گرداند که آی دی document های درج شده را در خود دارد. (در خاصیت Insert_ids)
اگر می خواهید که MongoDB هیچ id به document های شما اختصاص ندهد، می توانید خودتان برای document ها id اختصاص دهید.
این کار هنگام ایجاد document صورت می گیرد.
به یاد داشته باشید که هر document باید id منحصر به فرد خودش را داشته باشد.
دو document نمی توانند id یکسانی داشته باشند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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) |
خروجی:
C:\Users\My Name>python demo_mongodb_insert_many2.py [۱, ۲, ۳, ۴, ۵, ۶, ۷, ۸, ۹, ۱۰, ۱۱, ۱۲, ۱۳, ۱۴] |
جلسه درج Document در کالکشن MongoDB در پایتون Python نیز به پایان رسید.
در جلسه بعد به آموزش انتخاب کردن Document در MongoDB خواهیم پرداخت. با ما همراه باشید.