Bạn không thể cập nhật nó nhưng bạn có thể lưu một id mới và xóa id cũ. Làm theo một số bước để cập nhật _id của MongoDB. Các bước như sau:
Bước 1 :Trong bước đầu tiên, bạn cần lưu trữ ObjectId vào một biến.
anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)});
Bước 2 :Trong bước thứ hai, bạn cần đặt một id mới.
yourDeclaredVariableName._id=yourNewObjectIdValue;
Bước 3 :Trong bước thứ ba, bạn cần chèn id mới vào tài liệu.
db.yourCollectionName.insert(yourDeclaredVariableName);
Bước 4 :Trong bước thứ tư, bạn cần xóa id cũ.
db.yourCollectionName.remove({_id:yourOldObjectIdValue)});
Để hiểu các bước trên, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với tài liệu như sau:
> 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") }
Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Truy vấn như sau:
> db.updateIdDemo.find().pretty();
Sau đây là kết quả:
{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" } { "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" } { "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
Sau đây là truy vấn để cập nhật _id của tài liệu MongoDB:
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 })
Hãy để chúng tôi kiểm tra _id đã được cập nhật hay chưa. Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find ():
> db.updateIdDemo.find().pretty();
Sau đây là kết quả:
{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" } { "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" } { "_id" : ObjectId("5c6ebfec6fd07954a4890689"), "StudentName" : "Robert" }
Xem kết quả đầu ra mẫu, _id của “StudentName”:”Robert” đã được thay đổi.