2017  Kodetalk | Feedback | Privacy Policy | Terms | About

How update the _id of one MongoDB Document?

I want update an _id MongoDB of one document. I know it"s not a really good pratice. But with some technical reason, I need update it. But If I try to update it I have :

> db.clients.update({"_id":ObjectId("4cc45467c55f4d2d2a000002")}, {"$set":{"_id":ObjectId("4c8a331bda76c559ef000004")}});

Mod on _id not allowed

And the update is not made. How I can really update it ?


You cannot update it. You'll have to save the document using a new _id, and then remove the old document.

// store the document in a variable

doc = db.clients.findOne({_id: ObjectId("4cc45467c55f4d2d2a000002")})

// set a new _id on the document

doc._id = ObjectId("4c8a331bda76c559ef000004")

// insert the document, using the new _id


// remove the document with the old _id

db.clients.remove({_id: ObjectId("4cc45467c55f4d2d2a000002")})

Answer is