Rumah > pangkalan data > MongoDB > Bagaimana untuk mengemas kini _id dokumen MongoDB?

Bagaimana untuk mengemas kini _id dokumen MongoDB?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-08-31 22:29:02
ke hadapan
1693 orang telah melayarinya

如何更新 MongoDB 文档的 _id?

Anda tidak boleh mengemas kininya, tetapi anda boleh menyimpan ID baharu dan memadam yang lama. Ikuti beberapa langkah untuk mengemas kini _id MongoDB. Langkah-langkahnya adalah seperti berikut:

Langkah 1: Dalam langkah pertama, anda perlu menyimpan ObjectId ke dalam pembolehubah.

anyVariableName=db.yourCollectionName.findOne({_id:yourObjectIdValue)});
Salin selepas log masuk

Langkah 2: Dalam langkah kedua, anda perlu menetapkan id baharu.

yourDeclaredVariableName._id=yourNewObjectIdValue;
Salin selepas log masuk

Langkah 3: Dalam langkah ketiga, anda perlu memasukkan ID baharu dalam dokumen.

db.yourCollectionName.insert(yourDeclaredVariableName);
Salin selepas log masuk

Langkah 4: Dalam langkah keempat, anda perlu memadamkan ID lama.

db.yourCollectionName.remove({_id:yourOldObjectIdValue)});
Salin selepas log masuk

Untuk memahami langkah di atas, mari buat koleksi dengan dokumen. Pertanyaan untuk mencipta koleksi menggunakan dokumen adalah seperti berikut:

> 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")
}
Salin selepas log masuk

Paparkan semua dokumen dalam koleksi dengan bantuan kaedah find(). Pertanyaannya adalah seperti berikut:

> db.updateIdDemo.find().pretty();
Salin selepas log masuk
Salin selepas log masuk

Berikut ialah output:

{ "_id" : ObjectId("5c6ebfec6fd07954a4890683"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
Salin selepas log masuk

Berikut ialah pertanyaan untuk mengemas kini _id dokumen 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 })
Salin selepas log masuk

Mari kami semak sama ada _id telah dikemas kini. Paparkan semua dokumen dalam koleksi dengan bantuan kaedah find():

> db.updateIdDemo.find().pretty();
Salin selepas log masuk
Salin selepas log masuk

Berikut ialah output:

{ "_id" : ObjectId("5c6ebff66fd07954a4890684"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5c6ebfff6fd07954a4890685"), "StudentName" : "Maxwell" }
{ "_id" : ObjectId("5c6ebfec6fd07954a4890689"), "StudentName" : "Robert" }
Salin selepas log masuk

Melihat pada output sampel, _id bagi "Nama Pelajar":"Robert" telah berubah.

Atas ialah kandungan terperinci Bagaimana untuk mengemas kini _id dokumen MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan