
- MongoDB Tutorial
- MongoDB - Home
- MongoDB - Overview
- MongoDB - Advantages
- MongoDB - Environment
- MongoDB - Data Modeling
- MongoDB - Create Database
- MongoDB - Drop Database
- MongoDB - Create Collection
- MongoDB - Drop Collection
- MongoDB - Data Types
- MongoDB - Insert Document
- MongoDB - Query Document
- MongoDB - Update Document
- MongoDB - Delete Document
- MongoDB - Projection
- MongoDB - Limiting Records
- MongoDB - Sorting Records
- MongoDB - Indexing
- MongoDB - Aggregation
- MongoDB - Replication
- MongoDB - Sharding
- MongoDB - Create Backup
- MongoDB - Deployment
- MongoDB - Java
- MongoDB - PHP
- Advanced MongoDB
- MongoDB - Relationships
- MongoDB - Database References
- MongoDB - Covered Queries
- MongoDB - Analyzing Queries
- MongoDB - Atomic Operations
- MongoDB - Advanced Indexing
- MongoDB - Indexing Limitations
- MongoDB - ObjectId
- MongoDB - Map Reduce
- MongoDB - Text Search
- MongoDB - Regular Expression
- Working with Rockmongo
- MongoDB - GridFS
- MongoDB - Capped Collections
- Auto-Increment Sequence
- MongoDB Useful Resources
- MongoDB - Questions and Answers
- MongoDB - Quick Guide
- MongoDB - Useful Resources
- MongoDB - Discussion
How to update the _id of a MongoDB Document?
You cannot update it but you can save a new id and remove the old id. Follow some steps in order to update the _id of a MongoDB. The steps are as follows:
Step1: In the first step, you need to store ObjectId into a variable.
anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)});
Step 2: In the second step, you need to set a new id.
yourDeclaredVariableName._id=yourNewObjectIdValue;
Step 3: In the third step, you need to insert new id on a document.
db.yourCollectionName.insert(yourDeclaredVariableName);
Step 4: In the fourth step, you need to remove the old id.
db.yourCollectionName.remove({_id:yourOldObjectIdValue)});
To understand the above steps, let us create a collection with document. The query to create a collection with document is as follows:
> db.updateIdDemo.insertOne({"StudentName":"Robert"}); { "acknowledged" : true, "insertedId" : ObjectId("5c6ebfec6fd07954a4890683") } > db.updateIdDemo.insertOne({"StudentName":"Chris"}); { "acknowledged" : true, "insertedId" : ObjectId("5c6ebff66fd07954a4890684") } > db.updateIdDemo.insertOne({"StudentName":"Maxwell"}); { "acknowledged" : true, "insertedId" : ObjectId("5c6ebfff6fd07954a4890685") }
Display all documents from a collection with the help of find() method. The query is as follows:
> db.updateIdDemo.find().pretty();
The following is the output:
{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" } { "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" } { "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
The following is the query to update the _id of a MongoDB document:
Step1: > myId=db.updateIdDemo.findOne({_id:ObjectId("5c6ebfec6fd07954a4890683")}); { "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" } Step 2: > myId._id=ObjectId("5c6ebfec6fd07954a4890689"); ObjectId("5c6ebfec6fd07954a4890689") Step 3: > db.updateIdDemo.insert(myId); WriteResult({ "nInserted" : 1 }) Step 4: > db.updateIdDemo.remove({_id:ObjectId("5c6ebfec6fd07954a4890683")}); WriteResult({ "nRemoved" : 1 })
Let us check the _id has been updated or not. Display all documents from a collection with the help of find() method:
> db.updateIdDemo.find().pretty();
The following is the output:
{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" } { "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" } { "_id" : ObjectId("5c6ebfec6fd07954a4890689"), "StudentName" : "Robert" }
Look at the sample output, the _id of “StudentName”:”Robert” has been changed.
- Related Articles
- Update a MongoDB document with Student Id and Name
- MongoDB findOneAndUpdate() to update a single document
- How do you update a MongoDB document while replacing the entire document?
- MongoDB query to update the nested document?
- How to update a MongoDB document without overwriting the existing one?
- MongoDB query to update nested document
- How to prevent MongoDB from returning the object ID while finding a document?
- Update a single list item of a MongoDB document?
- Update only a single document in MongoDB
- MongoDB query to update a specific document from a collection
- Update only a specific value in a MongoDB document
- How to update a MongoDB document for adding a new item to an array?
- How to update an existing document in MongoDB collection using Java?
- Update two separate arrays in a document with one update call in MongoDB?
- How to update document with marks value in MongoDB for student David
