Operator $push dan $pull adalah bagian dari operator array yang dirancang untuk memodifikasi array dalam dokumen MongoDB. Dalam tutorial ini, saya akan menunjukkan cara kerja operator push dan pull dan cara menggunakannya dengan pengubah dan kondisi tambahan Show
(Artikel ini adalah bagian dari Panduan MongoDB kami. Gunakan menu sebelah kanan untuk menavigasi. ) Apa itu operator push dan pull?Dorong dan Tarik adalah dua operasi yang digunakan untuk menambah dan menghapus elemen dari array dalam dokumen MongoDB. Elemen push dan pull dilakukan masing-masing menggunakan operator MongoDB $push dan $pull
Sintaks dasar operator $push{ $push: { <field1>: <value1>, .. } } Sintaks dasar dari operator $pull{ $pull: { <field1>: <value|condition>, .. } }_ Mari kita lihat masing-masing secara lebih mendetail, termasuk cara kerjanya dan bagaimana Anda dapat menggunakannya Bagaimana operator MongoDB $push bekerjaAnda dapat melihat operator $push mengambil dua argumen
Jika bidang array tidak ada dalam dokumen, operator $push akan membuat bidang array baru. Namun, jika kolom yang ditentukan bukan array, MongoDB akan mengembalikan error pengubah operator $pushFungsionalitas operator $push dapat diperluas lebih lanjut menggunakan pengubah berikut
Operasi $push dilakukan dalam urutan berikut, terlepas dari urutan pengubah yang didefinisikan
Selanjutnya, kita akan melihat bagaimana kita dapat menggunakan operasi MongoDB $push untuk memanipulasi dokumen. Saya akan menunjukkan beberapa contoh, jadi lompatlah ke contoh yang Anda butuhkan Untuk kumpulan data dasar untuk contoh ini, saya akan menggunakan koleksi "vehicledetails". db.vehicledetails.find().pretty() Hasil Tambahkan satu nilai ke arrayMari kita lihat bagaimana kita bisa menambahkan nilai tunggal ke sebuah array ketika field array ada, dan itu tidak ada. Dalam semua contoh, kolom “_id” digunakan untuk menunjukkan dokumen mana yang harus ditambahkan array Contoh. Tidak Ada Bidang Larik Bidang array baru akan dibuat dengan nama bidang yang ditentukan dalam operator $push db.vehicledetails.update({"_id": ObjectId("5fbc52f05f9a62418038240d")}, {$push: {"vehicle_colours": "red"}}) Hasil Contoh. Ketika Bidang array hadir Item baru akan ditambahkan di akhir array db.vehicledetails.update({"_id": ObjectId("5fbc52f05f9a62418038240d")}, {$push: {"vehicle_colours": "green"}})_ Hasil Jika kami mencoba menggunakan operator $push untuk bidang non-array, itu akan menghasilkan kesalahan. Kode berikut mengembalikan kesalahan saat kami mencoba menambahkan nilai ke bidang non-array "make" db.vehicledetails.update({"_id": ObjectId("5fbc52f05f9a62418038240d")}, {$push: {"make": "green"}}) Hasil Tambahkan Banyak Nilai ke ArrayAnda dapat menambahkan beberapa nilai ke array dengan atau tanpa pengubah $each Contoh. Beberapa Nilai tanpa $setiap pengubah Jika pengubah $each tidak ada, MongoDB akan menambahkan semua nilai sebagai nilai tunggal ke bidang larik yang ditentukan db.vehicledetails.update({"_id": ObjectId("5fbc52f55f9a62418038240e")}, {$push: {"vehicle_colours": ["blue", "red", "yellow"]}})_ Hasil Di sini, Anda dapat melihat "biru", "merah", dan "kuning" adalah elemen dari array yang baru dibuat. Tapi larik itu hanyalah salah satu elemen dari larik “vehical_colours”. Contoh. Beberapa Nilai dengan $setiap pengubah Ketika operasi $push didefinisikan dengan pengubah $each, setiap elemen dalam operasi $push akan ditambahkan ke array sebagai item individual db.vehicledetails.update({"_id": ObjectId("5fbc52f55f9a62418038240e")}, {$push: {"vehicle_colours": { $each :["blue", "red", "yellow"]}}}) Hasil Di sini, "vehicle_colours" memiliki tiga elemen setelah operasi $push Menggunakan Pengubah $sort dan $slicePada bagian ini, kami akan mendemonstrasikan cara menggunakan pengubah $sort dan $slice menggunakan dokumen berikut dalam koleksi "vehicledetails" Mari kita tambahkan warna "perak" ke kolom array "vehicle_colours" dan urutkan isinya menurut abjad (urutan menaik) db.vehicledetails.update({"_id": ObjectId("5fbc52fb5f9a62418038240f")}, {$push: {"vehicle_colours": { $each :["silver", "orange"], $sort: 1}}})_ Hasil Output di atas menunjukkan kepada kita bahwa warna baru telah ditambahkan, dan larik telah diurutkan menurut abjad. Dalam contoh berikut, kami akan menambahkan warna "biru tua" ke bidang array sambil mengurutkan berdasarkan abjad dan menggunakan pengubah $slice untuk membatasi array menjadi 5 elemen db.vehicledetails.update({"_id": ObjectId("5fbc52fb5f9a62418038240f")}, {$push: {"vehicle_colours": { $each :["dark blue"], $sort: 1, $slice: 5}}})_ Hasil Menggunakan Pengubah $positionPengubah $position digunakan untuk menentukan lokasi dalam array di mana item baru harus ditambahkan. Ini akan mengesampingkan perilaku default menambahkan item ke akhir array Pada contoh berikut, kita akan menambahkan warna “putih” di awal kolom array “vehicle_colours”. Dalam pengubah "$position", nol (0) digunakan untuk menunjukkan posisi pertama (indeks 0) dari array { $pull: { <field1>: <value|condition>, .. } }_0 Hasil Cara kerja operator $pull MongoDBOperator $pull digunakan untuk menghapus semua contoh nilai atau nilai dari dokumen MongoDB yang cocok dengan kondisi yang ditentukan. Jika array berisi dokumen yang disematkan atau disarangkan, kondisi operator $pull yang ditentukan akan diterapkan ke setiap elemen array seolah-olah setiap elemen array adalah dokumen dalam kumpulan Ketika nilai yang ditentukan untuk dihapus adalah array, operator $pull hanya menghapus elemen dalam array yang cocok dengan nilai persis yang ditentukan, termasuk urutan elemen didefinisikan. Jika nilai yang ditentukan untuk dihapus adalah dokumen, operator $pull akan menghapus elemen yang cocok dengan bidang dan nilai yang ditentukan. Dalam contoh ini urutan bidang dibuang Sekarang saya akan memandu Anda melalui beberapa contoh operator $pull. Lompat ke yang Anda butuhkan Dalam contoh ini, kami akan menggunakan kumpulan data berikut untuk menunjukkan Hapus satu item dari arrayDi sini, kami akan menghapus nilai tunggal "2018" dari kolom array "model_year". Kolom “_id” digunakan untuk menunjukkan dokumen tempat operasi $pull harus dilakukan { $pull: { <field1>: <value|condition>, .. } }_1 Hasil Hapus Semua Item yang Sama dengan Nilai yang DitentukanDalam contoh ini, kami akan menggunakan koleksi "vehicledetails" untuk menghapus warna "biru" dan "hijau" dari kolom array "vehicle_colours" dan menghapus model tahun 2020 dari kolom array "model_year" { $pull: { <field1>: <value|condition>, .. } }_2 Hasil Hapus Item yang Cocok dengan Kondisi $pull yang DitentukanDengan menggunakan koleksi “student_grades”, mari kita buat kondisi untuk menghapus semua nilai yang kurang dari atau sama dengan 50 dari dokumen berikut Dokumen yang Tidak Dimodifikasi Dokumen yang Dimodifikasi { $pull: { <field1>: <value|condition>, .. } }_3 Hasil Kondisi yang ditentukan ({$lte. 50}) menghapus item apa pun yang kurang dari atau sama dengan 50 di bidang larik “nilai”. Hapus Item dari Array DokumenDalam contoh ini, kita akan menggunakan koleksi “student_grades” untuk menghapus semua nilai yang kurang dari atau sama dengan 50 di kolom array “grades” di semua dokumen dalam koleksi Koleksi yang Tidak Dimodifikasi Koleksi yang Dimodifikasi { $pull: { <field1>: <value|condition>, .. } }_4 Hasil Keluaran di atas menunjukkan kepada kita bahwa nilai apa pun yang kurang dari atau sama dengan 50 telah dihapus dari bidang larik "nilai" di semua dokumen dalam koleksi "tingkat_student" Apakah MongoDB mendukung array?Salah satu manfaat model skema kaya MongoDB adalah kemampuan untuk menyimpan array sebagai nilai kolom dokumen . Menyimpan array sebagai nilai bidang memungkinkan Anda memodelkan hubungan satu-ke-banyak atau banyak-ke-banyak dalam satu dokumen, alih-alih di seluruh koleksi terpisah seperti yang mungkin Anda lakukan dalam database relasional.
Bagaimana cara menggunakan array di MongoDB?Bekerja dengan Array di MongoDB . pengantar. . Buat dan Kueri Dokumen. . Tambahkan Elemen Array. . Perbarui Elemen Array. . Hapus Elemen Array. . Tambahkan Bidang Baru ke semua Objek di Larik. . Perbarui Elemen Array Tertentu Berdasarkan Suatu Kondisi. . Kesimpulan Bagaimana cara mendeklarasikan array di MongoDB?Kita dapat mendefinisikan array adalah sebagai berikut. {< bidang larik >. { 1. Bidang larik. Bidang array didefinisikan sebagai nama bidang koleksi tempat kita membuat atau menentukan nilai array.
Bisakah Anda memiliki array objek di MongoDB?Direkomendasikan untuk menggunakan larik objek saat mendesain database MongoDB . Larik objek memungkinkan Anda untuk menyimpan beberapa item dalam satu bidang, dan memungkinkan Anda untuk dengan mudah menambah, menghapus, dan memodifikasi item individual di dalam larik. |