Λειτουργίες MongoDB CRUD με Python (Pymongo)

Το PyMongo είναι μια διανομή Python που περιέχει εργαλεία για εργασία με MongoDB, οπότε σε αυτήν την ανάρτηση ιστολογίου βλέπουμε μερικές βασικές μεθόδους που εκτελούν λειτουργίες CRUD σε μια συλλογή. insert_one(), insert_many(), find_one(), find(), update(), delete(), ...

I, Connect and Create Database

import pymongo

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

II, Δημιουργία, Γράψτε

1, insert()

μπορεί να χρησιμοποιηθεί για την εισαγωγή 1 περισσότερων εγγραφών.

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" }])

επιστρέφει η μέθοδος insert().

# insert single user
ObjectId('5fbe1c17242098c02a7f4ecb')

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

2, insert_one()

εισάγει μια μεμονωμένη εγγραφή σε ένα DB

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

3, insert_many()

εισάγει πολλαπλές εγγραφές σε μια συλλογή

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

III, Ενημέρωση

1, ενημέρωση()

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, update_many()

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, Επιλογή δεδομένων, Ανάγνωση, Αναφορά, Αναζήτηση, Ταξινόμηση

1, find()

επιστρέφει όλες τις εγγραφές

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

2, find_one()

επιστροφή πρώτου δίσκου

mycol.find_one()

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

3, Φίλτρο

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

for x in mydoc:
  print(x)

βρείτε όλες τις εγγραφές του ονόματος χρήστη με 'a'

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

for x in mydoc:
  print(x)

4, Ταξινόμηση

ASC

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

DESC

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

5, όριο

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

V, Διαγραφή

1, delete_one()

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

2, delete_many()

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