ដើម្បីបង្កើតមូលដ្ឋានទិន្នន័យផ្ទាល់ខ្លួនរបស់យើងមួយ នៅលើគេហទំព័ររបស់មូលដ្ឋានទិន្នន័យ MongoDB យើងចាំបាច់ត្រូវបង្កើតវត្ថុដែលជា instance នៃថ្នាក់ MongoClient ជាមុនសិន ដោយផ្តល់តំណរភ្ចាប់ទៅកាន់ account របស់យើងនៅលើគេហទំព័រ MongoDB ជា argument សំរាប់ constructor នៃថ្នាក់ MongoClient ដោយធ្វើដូចខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["mydatabase"]
យើងត្រូវធ្វើការកត់សំគាល់ថា ក្រោយពីបង្កើតរួចហើយ មូលដ្ឋានទិន្នន័យផ្ទាល់ខ្លួនរបស់យើង មិនទាន់បញ្ចេញរូបរាងអោយឃើញនៅឡើយនោះទេ គឺវាបង្ហាញរូបរាងតែនៅពេលណាដែលទិន្នន័យផ្សេងៗត្រូវបានបញ្ចូលទៅក្នុងនោះតែប៉ុណ្ណោះ។ អាស្រ័យហេតុនេះ យើងចាំបាច់ត្រូវបង្កើត collection មួយជាមុនសិនមុននឹងបញ្ចូលទិន្នន័យផ្សេងៗចូលទៅក្នុងនោះ។ សូមបញ្ជាក់ថា collection នៅក្នុងមូលដ្ឋានទិន្នន័យ MongoDB មានលក្ខណៈស្រដៀងគ្នានឹង table នៅក្នុងមូលដ្ឋានទិន្នន័យ SQL ។ ហើយការបង្កើត collection ត្រូវធ្វើឡើងដូចខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["mydatabase"] mycol = mydb["customers"]បន្ទាប់មកទៀត យើងអាចបញ្ជូលទិន្នន័យផ្សេងៗ ដែលជា dictionary ចូលទៅក្នុង collection "customers" បានដោយធ្វើដូចខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["mydatabase"] mycol = mydb["customers"] mydict = { "name": "John", "address": "Highway 37" } x = mycol.insert_one(mydict)
នៅក្នុងមូលដ្ឋានទិន្នន័យ MongoDB ទិន្នន័យដែលជា dictionary នៅក្នុងភាសា Python ត្រូវគេអោយឈ្មោះថាជា document ។ ហើយការបញ្ចូល document ណាមួយចូលទៅក្នុង collection ណាមួយ ត្រូវធ្វើឡើងដោយប្រើប្រាស់ method ឈ្មោះ insert_one() ។
យ៉ាងណាម៉ិញ នៅពេលដែល document ណាមួយត្រូវបានបញ្ចូលទៅក្នុង collection ណាមួយ ប្រព័ន្ធ MongoDB និងបង្កើត item ថ្មីមួយទៀត បញ្ចូលទៅក្នុង document នោះ។ item ថ្មីនោះមាន key ជា "_id" និង value ជាអត្តសញ្ញាណខុសគេតែមួយគត់ (unique id) សំរាប់ document ថ្មីនោះ។ ជាក់ស្តែង បន្ទាប់ពីបញ្ចូល document ខាងលើនេះ ចូលទៅក្នុងមូលដ្ឋានទិន្នន័យរបស់យើងហើយ បើយើងចូលទៅក្នុង account របស់យើងនៅលើគេហទំព័រ MongoDB យើងនឹងឃើញ item ថ្មីនោះ ដូចនៅក្នុងរូបខាងក្រោមនេះ៖
យ៉ាងណាម៉ិញ អត្តសញ្ញាណថ្មីតែមួយគត់នោះ នឹងត្រូវបញ្ចេញមកក្រៅ ដោយវិធីឈ្មោះ insert_one() នៅដែលយើងយកវិធីនេះមកប្រើដើម្បីបញ្ចូលទិន្ននន័យ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") mydb = myclient["mydatabase"] mycol = mydb["customers"] mydict = { "name": "Peter", "address": "Lowstreet 27" } x = mycol.insert_one(mydict) print(x.inserted_id)
5f30f2d82e39701df125f4cb
c:\python>
ក្រៅពីការបញ្ចូល document តែមួយចូលទៅក្នុង collection យើងក៏អាចបញ្ចូល document ជាច្រើនក្នុងពេលតែមួយចូលទៅក្នុង document បានដែរ ដោយប្រើប្រាស់ method ឈ្មោះ insert_many() ដូចខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") 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)
[ObjectId('5f30f74572b85739ac65c49b'), ObjectId('5f30f74572b85739ac65c49c'), ObjectId('5f30f74572b85739ac65c49d'), ObjectId('5f30f74572b85739ac65c49e'), ObjectId('5f30f74572b85739ac65c49f'), ObjectId('5f30f74572b85739ac65c4a0'), ObjectId('5f30f74572b85739ac65c4a1'), ObjectId('5f30f74572b85739ac65c4a2'), ObjectId('5f30f74572b85739ac65c4a3'), ObjectId('5f30f74572b85739ac65c4a4'), ObjectId('5f30f74572b85739ac65c4a5'), ObjectId('5f30f74572b85739ac65c4a6')]
c:\python>
មួយវិញទៀត បើសិនជាយើងចង់ជំនួសតំលៃរបស់ _id ដោយលេខណាមួយរបស់យើងផ្ទាល់ យើងអាចធ្វើដូចខាងក្រោមនេះ៖
from pymongo import MongoClient myclient = MongoClient("mongodb+srv://username:mypassword@cluster0-y0whw.gcp.mongodb.net/test?retryWrites=true&w=majority") 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)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]