Python MongoDB - Belgeyi Sil
Bir koleksiyondaki belgeleri şunu kullanarak silebilirsiniz: remove()MongoDB yöntemi. Bu yöntem iki isteğe bağlı parametreyi kabul eder -
Dokümanların silinmesi koşulunu belirten silme kriterleri.
Yalnızca bir, ikinci parametre olarak true veya 1 geçerseniz, o zaman yalnızca bir belge silinecektir.
Sözdizimi
Remove () yönteminin sözdizimi aşağıdadır -
>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
Misal
Bir koleksiyon oluşturduğumuzu ve buna aşağıda gösterildiği gibi 5 belge eklediğimizi varsayalım -
> 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" : [ ]
})
Aşağıdaki sorgu, Sarmista olarak isim değerine sahip olan koleksiyonun belgelerini siler.
> 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" }
Eğer çağırırsan remove() yöntemiyle silme kriterleri geçilmezse, koleksiyondaki tüm belgeler silinecektir.
> db.sample.remove({})
WriteResult({ "nRemoved" : 5 })
> db.sample.find()
Python Kullanarak Belgeleri Silme
Bir MangoDB koleksiyonundan belgeleri silmek için, yöntemleri kullanarak bir koleksiyondaki belgeleri silebilirsiniz. delete_one() ve delete_many() yöntemler.
Bu yöntemler, belge silme koşulunu belirten bir sorgu nesnesini kabul eder.
Detele_one () yöntemi, bir eşleşme durumunda tek bir belgeyi siler. Sorgu belirtilmezse, bu yöntem koleksiyondaki ilk belgeyi siler.
Misal
Aşağıdaki python örneği, koleksiyondaki id değeri 1006 olan belgeyi siler.
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)
Çıktı
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'}
Benzer şekilde, delete_many() pymongo yöntemi, belirtilen koşulu sağlayan tüm belgeleri siler.
Misal
Aşağıdaki örnek, koleksiyondaki yaş değeri 26'dan büyük olan tüm belgeleri siler -
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)
Çıktı
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'}
Herhangi bir sorgu iletmeden delete_many () yöntemini çağırırsanız, bu yöntem koleksiyondaki tüm belgeleri siler.
coll.delete_many({})