This article focus on how to replace document or entry inside a collection. We can only replace the data already inserted in the database.
Prerequisites : MongoDB Python Basics
Method used: replace_one() Aim: Replace entire data of old document with a new document
Insertion In MongoDB
We would first insert data in MongoDB.
# Python code to illustrate # Insert in MongoDB from pymongo import MongoClient
try :
conn = MongoClient()
print (& quot
Connected successfully!!!& quot
)
except :
print (& quot
Could not connect to MongoDB & quot
)
# database db = conn.database
# Created or Switched to collection names: my_gfg_collection collection = db.my_gfg_collection
emp_rec1 = {
& quot
name & quot: & quot
Mr.Geek & quot,
& quot
eid & quot: 24 ,
& quot
location & quot: & quot
delhi & quot
} emp_rec2 = {
& quot
name & quot: & quot
Mr.Shaurya & quot,
& quot
eid & quot: 14 ,
& quot
location & quot: & quot
delhi & quot
} emp_rec3 = {
& quot
name & quot: & quot
Mr.Coder & quot,
& quot
eid & quot: 14 ,
& quot
location & quot: & quot
gurugram & quot
} # Insert Data rec_id1 = collection.insert_one(emp_rec1)
rec_id2 = collection.insert_one(emp_rec2)
rec_id3 = collection.insert_one(emp_rec3)
print (& quot
Data inserted with record ids", rec_id1, & quot
& quot
, rec_id2, rec_id3)
# Printing the data inserted cursor = collection.find()
for record in cursor:
print (record)
|
Output:
Connected successfully!!! Data inserted with record ids {'_id': ObjectId('5a02227b37b8552becf5ed2a'), 'name': 'Mr.Geek', 'eid': 24, 'location': 'delhi'} {'_id': ObjectId('5a02227c37b8552becf5ed2b'), 'name': 'Mr.Shaurya', 'eid': 14, 'location': 'delhi'} {'_id': ObjectId('5a02227c37b8552becf5ed2c'), 'name': 'Mr.Coder', 'eid': 14, 'location': 'gurugram'}
Replace_one()
After inserting the data let’s replace the Data of an employee whose name: Mr.Shaurya
# Python code to illustrate # Replace_one() in MongoDB from pymongo import MongoClient try :
conn = MongoClient()
print("Connected successfully!!!")
except: print("Could not connect to MongoDB")
# database db = conn.database # Created or Switched to collection names: my_gfg_collection collection = db.my_gfg_collection # replace one of the employee data whose name is Mr.Shaurya result = collection.replace_one( {"name":"Mr.Shaurya"},
{
"name":"Mr.GfG",
"eid":45,
"location":"noida"
}
)
print("Data replaced with id",result) # Print the new record cursor = collection.find() for record in cursor:
print(record)
|
Output:
Connected successfully!!! Data replaced with id {'_id': ObjectId('5a02227b37b8552becf5ed2a'), 'name': 'Mr.Geek', 'eid': 24, 'location': 'delhi'} {'_id': ObjectId('5a02227c37b8552becf5ed2b'), 'name': 'Mr.GfG', 'eid': 45, 'location': 'noida'} {'_id': ObjectId('5a02227c37b8552becf5ed2c'), 'name': 'Mr.Coder', 'eid': 14, 'location': 'gurugram'}
We have successfully replaced the document of employee name:’Mr.Shaurya’ and replaced the entire document with a new one, name:’Mr.GfG’ (present).
To replace multiple documents use update_many() with upsert set to True.