2017  Kodetalk | Feedback | Privacy Policy | Terms | About
userimage

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 ?

userimage

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

db.clients.insert(doc)


// remove the document with the old _id

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

Answer is