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

Bagaimana untuk memadam elemen tatasusunan mengikut indeks dalam MongoDB?

PHPz
PHPzke hadapan
2023-09-08 12:17:02952semak imbas

如何在 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 }});

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

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

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

> db.removeArrayElementByItsIndexDemo.find().pretty();

Berikut ialah output -

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

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

Langkah 2 -Pertanyaan adalah seperti berikut -

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

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

> db.removeArrayElementByItsIndexDemo.find().pretty();

Berikut ialah output -

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

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam