Operasi CRUD MongoDB dengan Python (Pymongo)

PyMongo ialah pengedaran Python yang mengandungi alat untuk bekerja dengan MongoDB, Jadi dalam catatan blog ini mari lihat beberapa kaedah asas yang melaksanakan operasi CRUD kepada koleksi. insert_one(), insert_many(), find_one(), find(), kemas kini(), delete(), ...

Saya, Sambung dan Cipta Pangkalan Data

import pymongo

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

II, Cipta, Tulis

1, masukkan()

boleh digunakan untuk memasukkan 1 atau lebih rekod.

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

# insert single user
mycol.insert({ "username": "aaa", "pass": "123456" })

# insert many users
mycol.insert([{ "username": "bbb", "pass": "123456" }, { "username": "ccc", "pass": "123456" }])

kaedah insert() kembali

# insert single user
ObjectId('5fbe1c17242098c02a7f4ecb')

# insert many users
[ObjectId('5fbe1c17242098c02a7f4ecb'), ObjectId('5fbe1c63fa9741631f6a1f6c')]

2, insert_one()

memasukkan satu rekod ke dalam DB

mycol.insert_one({ "username": "aaa", "pass": "123456" })

3, insert_many()

memasukkan berbilang rekod ke dalam koleksi

mycol.insert_many([
    { "username": "aaa", "pass": "123456" },
    { "username": "bbb", "pass": "123456" },
    { "username": "ccc", "pass": "123456" }
])

III, Kemas kini

1, kemas kini()

myquery = { "username": "aaa" }
newvalues = { "$set": { "username": "ddd" } }

mycol.update(myquery, newvalues)

2, update_one()

myquery = { "username": "aaa" }
newvalues = { "$set": { "username": "ddd" } }

mycol.update_one(myquery, newvalues)

3, kemas kini_banyak()

myquery = { "username": "aaa" }
newvalues = { "$set": { "username": "ddd" } }

mycol.update_many(myquery, newvalues)

4, replace_one()

myquery = { "username": "aaa" }
newvalues = { "username": "ddd" }

mycol.replace_one(myquery, newvalues)

IV, Pilih data, Baca, Cari, Cari, Isih

1, cari()

mengembalikan semua rekod

mycol.find()
# return
<pymongo.cursor.Cursor object at 0x7f8fc1878890>

2, find_one()

kembalikan rekod pertama

mycol.find_one()

# return 
{'id': ObjectId('5fbe1c17242098c02a7f4ecb'), 'username': 'aaa',  'pass': '123456'}

3, Penapis

myquery = { "username": "aaa" } 
mydoc = mycol.find(myquery)

for x in mydoc:
  print(x)

cari semua rekod yang nama penggunanya bermula dengan 'a'

myquery = { "username": { "$gt": "a" } }
mydoc = mycol.find(myquery)

for x in mydoc:
  print(x)

4, Isih

ASC

mydoc = mycol.find().sort("username", 1)

DESC

mydoc = mycol.find().sort("username", -1)

5, had

users = mycol.find().limit(5)

V, Padam

1, delete_one()

mycol.delete_one({ "username": "aaa" })

2, delete_many()

mycol.delete_many({ "username": "aaa" })