Perbarui array di mongodb node js
Selamat datang di postingan kedua dalam seri "MongoDB Animated 🍩" saya, di mana saya memberikan contoh animasi dan penjelasan untuk operasi MongoDB yang tidak ingin saya googling lagi Show
Dalam posting ini, kami akan meninjau berbagai strategi untuk memperbarui elemen dari array tersemat Saya akan menggunakan koleksi contoh yang sama yang digunakan di artikel sebelumnya di seri ini. Ini terdiri dari kumpulan sederhana "donut combos" dari toko donat. Setiap kombo memiliki nama dan rangkaian donat yang akan disertakan jika pelanggan memilih kombo tersebut. Berikut skema lengkapnya
Masuk ke mode layar penuh Keluar dari mode layar penuh Memperbarui elemenMemperbarui semua elemen dengan $[]Menggunakan operator 0 memungkinkan kita memperbarui semua elemen arraySebagai contoh, katakanlah kita ingin menghapus kaca dari semua donat di semua dokumen aktif _Masuk ke mode layar penuh Keluar dari mode layar penuh
Cara lain untuk menghapus kaca bisa dengan menghapus properti 1 dari semua donat di semua dokumen aktifIni dapat dilakukan dengan menggunakan operator _2 yang dikombinasikan dengan semua operator posisi 0 _Masuk ke mode layar penuh Keluar dari mode layar penuh
Memperbarui elemen pertama dengan $Anda mungkin hanya perlu memperbarui elemen pertama dari array Anda. Dalam hal ini, Anda harus menggunakan operator posisi 6. Operator posisi ini akan memungkinkan kita menerapkan perubahan pada elemen pertama yang cocok dengan 7 (parameter pertama dari metode 8). Bidang array harus menjadi bagian dari 7Dengan menggabungkan operator posisi _6 dengan $set , kita dapat memperbarui properti dari elemen larik pertama yang cocok dengan 7 kitaPada contoh berikut kita akan memperbarui donat putih pertama di setiap dokumen dan mengubah warnanya menjadi "merah muda"
Masuk ke mode layar penuh Keluar dari mode layar penuh Operator posisi 6 juga dapat digabungkan dengan 2 untuk menghapus properti dari elemen larik pertama yang cocok dengan 7 kitaJadi untuk mencobanya, mari hilangkan warna dari donat putih pertama yang ditemukan di setiap dokumen
Masuk ke mode layar penuh Keluar dari mode layar penuh Updating elements that match a filter with $[]Untuk memperbarui sekumpulan elemen yang cocok dengan filter tertentu, kita harus menggunakan operator posisi terfilter 6 di mana 7 adalah placeholder untuk nilai yang mewakili satu elemen arrayKita kemudian harus menggunakan parameter ketiga (opsi) dari metode 8 untuk menentukan satu set 9. Di sini kita akan menentukan kondisi yang harus dipenuhi oleh setiap elemen array yang ingin kita perbarui untuk diperbaruiPada contoh selanjutnya, kita akan mengubah setiap warna putih donat menjadi hijau, hanya pada dokumen yang aktif
Masuk ke mode layar penuh Keluar dari mode layar penuh Menggabungkan operator posisi yang difilter 6 (atau dalam contoh kita 1) dengan operator 2, kita dapat menghapus properti dari semua elemen dalam array yang cocok dengan kriteria 3 kitaMisalnya, kami dapat menghapus warna setiap donat putih di setiap dokumen aktif
Masuk ke mode layar penuh Keluar dari mode layar penuh Cobalah sendiriSaya membuat repo untuk mencoba kueri MongoDB di memori menggunakan Node. js dengan driver Jest dan MongoDB Node. Saya menggunakan tes untuk menjalankan kueri dan memverifikasi bahwa semuanya telah diperbarui dengan benar. Saya juga menyertakan logger yang mencetak dokumen yang diperbarui di konsol yang menampilkan perubahan yang diterapkan menggunakan sintaks sorot diff Anda dapat menemukan contoh yang saya sertakan dalam artikel ini di folder 4pawap90 / try-mongodb-queriesContoh proyek sederhana untuk mencoba kueri MongoDB di memori menggunakan JestSebuah proyek sederhana untuk mencoba kueri MongoDB di memori menggunakan Jest. Termasuk logger yang mencatat perbedaan antara data pengujian asli dan data setelah pembaruan menggunakan penyorotan sintaks diff Apa yang Anda butuhkan untuk menjalankan proyek ini (MongoDB tidak diperlukan karena akan berjalan di memori, ditangani oleh paket 1. Instal dependensi
2. Jalankan tes PeralatanAlat utama yang digunakan dalam proyek ini
Lihat di GitHub Sumber dayaUntuk info lebih lanjut tentang memperbarui array, berikut adalah beberapa sumber dari dokumen resmi MongoDB
Saya tertarik dengan tanggapan Anda. Apakah postingan ini bermanfaat? Bagaimana cara memperbarui array objek di MongoDB menggunakan node js?Untuk memperbarui elemen larik pertama dari setiap dokumen yang cocok dengan kueri Anda, gunakan operator posisi $ . Operator posisi $ mereferensikan larik yang cocok dengan kueri. Anda tidak dapat menggunakan operator ini untuk mereferensikan array bersarang.
Bagaimana cara memperbarui array di MongoDB?Anda dapat menggunakan metode updateOne() atau updateMany() untuk menambah, memperbarui, atau menghapus elemen larik berdasarkan kriteria yang ditentukan . Direkomendasikan untuk menggunakan metode updateMany() untuk memperbarui banyak array dalam sebuah koleksi.
Bagaimana cara memperbarui array bersarang di MongoDB?Perbarui Nested Array Bersamaan dengan $[]
. Berikut ini memperbarui nilai yang lebih besar dari atau sama dengan 8 di nilai bersarang. pertanyaan array jika terkait nilai. The $[
Bagaimana cara memperbarui bidang di simpul JS MongoDB?Anda dapat memperbarui catatan, atau dokumen seperti yang disebut di MongoDB, dengan menggunakan metode updateOne() . Parameter pertama dari metode updateOne() adalah objek kueri yang menentukan dokumen mana yang akan diperbarui. Catatan. Jika kueri menemukan lebih dari satu rekaman, hanya kejadian pertama yang diperbarui. |