Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để cập nhật _id của Tài liệu MongoDB?

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.