Python MongoDB - Xóa tài liệu

Bạn có thể xóa tài liệu trong bộ sưu tập bằng cách sử dụng remove()phương thức của MongoDB. Phương thức này chấp nhận hai tham số tùy chọn -

  • Tiêu chí xóa xác định điều kiện để xóa tài liệu.

  • Chỉ một, nếu bạn chuyển true hoặc 1 làm tham số thứ hai, thì chỉ một tài liệu sẽ bị xóa.

Cú pháp

Sau đây là cú pháp của phương thức remove ():

>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)

Thí dụ

Giả sử chúng tôi đã tạo một bộ sưu tập và chèn 5 tài liệu vào nó như hình dưới đây -

> use testDB
switched to db testDB
> db.createCollection("myColl")
{ "ok" : 1 }
> data = [
   ... {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
   ... {"_id": "1002", "name": "Rahim", "age": 27, "city": "Bangalore"},
   ... {"_id": "1003", "name": "Robert", "age": 28, "city": "Mumbai"},
   ... {"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
   ... {"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
   ... {"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
> db.sample.insert(data)
BulkWriteResult({
   "writeErrors" : [ ],
   "writeConcernErrors" : [ ],
   "nInserted" : 6,
   "nUpserted" : 0,
   "nMatched" : 0,
   "nModified" : 0,
   "nRemoved" : 0,
   "upserted" : [ ]
})

Truy vấn sau sẽ xóa (các) tài liệu của bộ sưu tập có giá trị tên là Sarmista.

> db.sample.remove({"name": "Sarmista"})
WriteResult({ "nRemoved" : 1 })
> db.sample.find()
{ "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
{ "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" }
{ "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" }
{ "_id" : "1004", "name" : "Romeo", "age" : 25, "city" : "Pune" }
{ "_id" : "1006", "name" : "Rasajna", "age" : 26, "city" : "Chennai" }

Nếu bạn gọi remove() mà không vượt qua tiêu chí xóa, tất cả các tài liệu trong bộ sưu tập sẽ bị xóa.

> db.sample.remove({})
WriteResult({ "nRemoved" : 5 })
> db.sample.find()

Xóa tài liệu bằng Python

Để xóa tài liệu khỏi bộ sưu tập MangoDB, bạn có thể xóa tài liệu khỏi bộ sưu tập bằng các phương pháp delete_one()delete_many() các phương pháp.

Các phương thức này chấp nhận một đối tượng truy vấn xác định điều kiện để xóa tài liệu.

Phương thức detele_one () xóa một tài liệu duy nhất, trong trường hợp trùng khớp. Nếu không có truy vấn nào được chỉ định, phương pháp này sẽ xóa tài liệu đầu tiên trong bộ sưu tập.

Thí dụ

Ví dụ python sau sẽ xóa tài liệu trong bộ sưu tập có giá trị id là 1006.

from pymongo import MongoClient

#Creating a pymongo client
client = MongoClient('localhost', 27017)

#Getting the database instance
db = client['lpaksgf']

#Creating a collection
coll = db['example']

#Inserting document into a collection
data = [
   {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
   {"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
   {"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
   {"_id": "1004", "name": "Romeo", "age": 25, "city": "Pune"},
   {"_id": "1005", "name": "Sarmista", "age": 23, "city": "Delhi"},
   {"_id": "1006", "name": "Rasajna", "age": 26, "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")

#Deleting one document
coll.delete_one({"_id" : "1006"})

#Retrieving all the records using the find() method
print("Documents in the collection after update operation: ")
for doc2 in coll.find():
   print(doc2)

Đầu ra

Data inserted ......
Documents in the collection after update operation:
{'_id': '1001', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '1002', 'name': 'Rahim', 'age': '27', 'city': 'Bangalore'}
{'_id': '1003', 'name': 'Robert', 'age': '28', 'city': 'Mumbai'}
{'_id': '1004', 'name': 'Romeo', 'age': 25, 'city': 'Pune'}
{'_id': '1005', 'name': 'Sarmista', 'age': 23, 'city': 'Delhi'}

Tương tự, delete_many() Phương pháp pymongo xóa tất cả các tài liệu thỏa mãn điều kiện đã chỉ định.

Thí dụ

Ví dụ sau sẽ xóa tất cả các tài liệu trong bộ sưu tập có giá trị tuổi lớn hơn 26 -

from pymongo import MongoClient

#Creating a pymongo client
client = MongoClient('localhost', 27017)

#Getting the database instance
db = client['sampleDB']

#Creating a collection
coll = db['example']

#Inserting document into a collection
data = [
   {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"},
   {"_id": "1002", "name": "Rahim", "age": "27", "city": "Bangalore"},
   {"_id": "1003", "name": "Robert", "age": "28", "city": "Mumbai"},
   {"_id": "1004", "name": "Romeo", "age": "25", "city": "Pune"},
   {"_id": "1005", "name": "Sarmista", "age": "23", "city": "Delhi"},
   {"_id": "1006", "name": "Rasajna", "age": "26", "city": "Chennai"}
]
res = coll.insert_many(data)
print("Data inserted ......")

#Deleting multiple documents
coll.delete_many({"age":{"$gt":"26"}})

#Retrieving all the records using the find() method
print("Documents in the collection after update operation: ")
for doc2 in coll.find():
   print(doc2)

Đầu ra

Data inserted ......
Documents in the collection after update operation:
{'_id': '1001', 'name': 'Ram', 'age': '26', 'city': 'Hyderabad'}
{'_id': '1004', 'name': 'Romeo', 'age': '25', 'city': 'Pune'}
{'_id': '1005', 'name': 'Sarmista', 'age': '23', 'city': 'Delhi'}
{'_id': '1006', 'name': 'Rasajna', 'age': '26', 'city': 'Chennai'}

Nếu bạn gọi phương thức delete_many () mà không chuyển bất kỳ truy vấn nào, phương thức này sẽ xóa tất cả các tài liệu trong bộ sưu tập.

coll.delete_many({})