Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Cách thay đổi _id của tài liệu MongoDB

Không thể cập nhật trực tiếp _id nhưng có thể lưu _id mới và xóa _id cũ. Các bước:

  1. Bước 1: Lưu ObjectId vào biến.
    var myId = db.yourCollectionName.findOne({_id: yourObjectIdValue});
  2. Bước 2: Gán _id mới.
    myId._id = yourNewObjectIdValue;
  3. Bước 3: Chèn tài liệu với _id mới.
    db.yourCollectionName.insert(myId);
  4. Bước 4: Xóa tài liệu _id cũ.
    db.yourCollectionName.remove({_id: yourOldObjectIdValue});

Ví dụ với collection updateIdDemo:

> db.updateIdDemo.insertOne({"StudentName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5c6ebfec6fd07954a4890683") }
... (thêm Chris, Maxwell) ...

Thực hiện 4 bước đổi _id của Robert:

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 })

Kiểm tra: _id của Robert đã thay đổi thành giá trị mới.