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.