Rumah > pangkalan data > MongoDB > Bagaimana untuk memadam elemen tatasusunan mengikut indeks dalam MongoDB?

Bagaimana untuk memadam elemen tatasusunan mengikut indeks dalam MongoDB?

PHPz
Lepaskan: 2023-09-08 12:17:02
ke hadapan
976 orang telah melayarinya

如何在 MongoDB 中通过索引删除数组元素?

Anda boleh mengalih keluar elemen tatasusunan mengikut indeks menggunakan dua langkah berikut -

Langkah pertama adalah seperti berikut -

db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});
Salin selepas log masuk

Sintaks di atas akan meletakkan nilai nol di lokasi "yourIndexValue". Selepas itu anda perlu mengekstrak nilai nol dari medan tatasusunan untuk mengalih keluar dari elemen tatasusunan.

Langkah kedua adalah seperti berikut -

db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});
Salin selepas log masuk

Untuk melaksanakan sintaks, mari buat koleksi dengan dokumen. Pertanyaan untuk mencipta koleksi menggunakan dokumen adalah seperti berikut -

> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David",
   "InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803")
}
Salin selepas log masuk

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

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

Berikut ialah output -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "Java",
      "SQL Server",
      "PL/SQL"
   ]
}
Salin selepas log masuk

Ini ialah pertanyaan untuk memadam elemen tatasusunan mengikut indeks.

Langkah 1 - Pertanyaan adalah seperti berikut -

> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Salin selepas log masuk

Langkah 2 -Pertanyaan adalah seperti berikut -

> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Salin selepas log masuk

Mari kita semak sama ada elemen tatasusunan "Java" telah dipadamkan. Pertanyaannya adalah seperti berikut -

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

Berikut ialah output -

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server",
      "PL/SQL"
   ]
}
Salin selepas log masuk

Melihat pada output sampel, elemen tatasusunan "Java" telah dialih keluar sepenuhnya.

Atas ialah kandungan terperinci Bagaimana untuk memadam elemen tatasusunan mengikut indeks dalam MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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