Rumah > hujung hadapan web > tutorial js > Bagaimana untuk mengalih keluar Objek Tertentu daripada Array dalam MongoDB?

Bagaimana untuk mengalih keluar Objek Tertentu daripada Array dalam MongoDB?

DDD
Lepaskan: 2024-11-02 07:26:29
asal
1083 orang telah melayarinya

How to Remove a Specific Object from an Array in MongoDB?

MongoDB: Mengalih keluar Objek daripada Array

Masalah:

Dalam MongoDB, bagaimana anda mengekstrak objek tertentu daripada tatasusunan yang tertanam dalam dokumen? Dalam dokumen contoh, kami ingin mengalih keluar objek dengan id: 23 daripada tatasusunan item.

Penyelesaian:

Untuk mencapai ini, gunakan operator $pull dengan pertanyaan yang lebih khusus untuk memadankan objek yang dikehendaki dalam tatasusunan.

Pertanyaan MongoDB:

db.mycollection.update(
    { '_id': ObjectId("5150a1199fac0e6910000002") }, 
    { $pull: { items: { id: 23 } } },
    false, // Upsert
    true // Multi
);
Salin selepas log masuk

Penjelasan:

  • $pull operator: Digunakan untuk mengalih keluar elemen daripada tatasusunan.
  • { item: { id: 23 } }: Tentukan objek bersarang untuk dialih keluar dengan memadankan medan khususnya.
  • Upsert: Tetapkan kepada palsu untuk menghalang pembuatan dokumen baharu jika kemas kini tidak sepadan dengan mana-mana dokumen sedia ada.
  • Berbilang: Tetapkan kepada benar untuk menggunakan kemas kini kepada berbilang dokumen yang sepadan (walaupun hanya perlu ada satu padanan dalam kes ini).

Node.js/Mongoose:

Dalam Mongoose, anda boleh menggunakan pertanyaan berikut:

<code class="javascript">MyModel.findOneAndUpdate(
  { '_id': '5150a1199fac0e6910000002' },
  { $pull: { items: { id: 23 } } },
  { multi: true }
);</code>
Salin selepas log masuk

Nota: MongoDB 3.6 juga menyokong pengendali $elemMatch bersama-sama dengan $pull untuk penapisan yang lebih kompleks dalam tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Objek Tertentu daripada Array dalam MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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