MongoDB Array Objek menggunakan insert() dengan Contoh

โšก Ringkasan Cerdas

MongoDB Contoh penggunaan array objek dengan insert() menunjukkan cara menambahkan beberapa dokumen ke dalam sebuah koleksi dalam satu operasi. Contoh ini menyimpan array data karyawan, menyematkan array di dalam sebuah dokumen, dan menampilkan hasilnya dengan rapi menggunakan fungsi print JSON.

  • ๐Ÿ“ฅ Sisipkan Massal: Metode insert() menambahkan array dokumen ke dalam koleksi dalam satu operasi yang efisien.
  • ๐Ÿงพ Model Dokumen: Setiap dokumen merupakan kumpulan pasangan kolom dan nilai, dan MongoDB menambahkan _id unik secara otomatis.
  • ๏ธ Array Tertanam: Array juga dapat berfungsi sebagai field di dalam satu dokumen, keeping nilai-nilai terkait secara bersamaan.
  • ๐Ÿ” Metode Modern: insertOne() dan insertMany() adalah pengganti yang lebih modern dan jelas untuk metode insert() yang lama.
  • ๏ธ Readable Keluaran: Perintah forEach(printjson) mencetak setiap dokumen dalam format JSON yang rapi dan mudah dibaca.

Apa itu metode insert() di MongoDB?

Metode insert() di MongoDB Fungsi `insert()` menambahkan satu atau lebih dokumen ke dalam koleksi. Sebuah dokumen adalah kumpulan pasangan field dan value yang disimpan dalam BSON, yaitu bentuk biner dari JSON. Saat Anda memberikan satu dokumen, `insert()` akan menyimpan satu record tersebut; saat Anda memberikan array dokumen, fungsi ini akan menyimpan semuanya dalam satu operasi, yang lebih cepat daripada memasukkannya satu per satu.

Metode ini dijalankan terhadap koleksi tertentu menggunakan pola db.collection.insert(). Jika koleksi target belum ada, MongoDB Ini dibuat secara otomatis saat penyisipan pertama. Setiap dokumen juga menerima bidang _id unik jika Anda tidak menyediakannya, sehingga setiap catatan dapat diidentifikasi di kemudian hari.

Meskipun fungsi insert() masih berfungsi, versi yang lebih baru MongoDB Versi-versi terbaru menyediakan insertOne() dan insertMany() sebagai pengganti yang lebih jelas. Contoh-contoh di bawah ini menggunakan insert() untuk menambahkan array dokumen karyawan dan kemudian menampilkan hasilnya dalam format JSON yang mudah dibaca.

Menambahkan Array Dokumen

Perintah โ€œsisipkanโ€ juga dapat digunakan untuk memasukkan beberapa dokumen ke dalam koleksi sekaligus. Contoh kode di bawah ini dapat digunakan untuk menyisipkan banyak dokumen sekaligus.

Contoh berikut menunjukkan bagaimana hal ini dapat dilakukan,

Langkah 1) Membuat JavaNaskah variabel yang disebut myEmployee untuk menampung berbagai dokumen

Langkah 2) Tambahkan dokumen yang diperlukan dengan Nama Bidang dan nilai ke variabel

Langkah 3) Gunakan perintah sisipkan untuk menyisipkan array dokumen ke dalam koleksi

var myEmployee=
	[
		{
			"Employeeid" : 1,
			"EmployeeName" : "Smith"
		},
		{
			"Employeeid"   : 2,
			"EmployeeName" : "Mohan"
		},
		{
			"Employeeid"   : 3,
			"EmployeeName" : "Joe"
		},
	];

	db.Employee.insert(myEmployee);

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan

MongoDB Array Objek menggunakan insert()

Outputnya menunjukkan bahwa 3 dokumen tersebut telah ditambahkan ke koleksi.

Cara Menyisipkan Array di Dalam Dokumen

Selain menyisipkan serangkaian dokumen terpisah, MongoDB memungkinkan Anda menyimpan array sebagai field di dalam satu dokumen. Ini berguna ketika satu record secara alami berisi daftar nilai, seperti karyawan yang memiliki beberapa keterampilan atau siswa yang terdaftar di beberapa mata kuliah. Karena MongoDB Dengan menggunakan model dokumen yang fleksibel, array berada langsung di dalam objek dan bukan di tabel terpisah, sehingga data yang terkait tetap berada dalam satu kelompok.

Contoh berikut menyisipkan satu dokumen karyawan yang berisi bidang array bernama Keterampilan:

db.Employee.insert(
   {
      "Employeeid" : 4,
      "EmployeeName" : "Alan",
      "Skills" : [ "MongoDB", "Node.js", "Express" ]
   }
);

Bagian-bagian dalam dokumen ini berfungsi sebagai berikut:

  • ID Karyawan ke NamaKaryawan adalah pasangan field dan nilai biasa.
  • Keterampilan adalah sebuah field array yang menyimpan tiga nilai string di dalam tanda kurung siku.
  • Seluruh dokumen, termasuk array yang tertanam di dalamnya, disimpan dalam satu operasi penyisipan.

Setelah menambahkan data, Anda dapat mengkonfirmasi array yang disematkan dengan kueri pencarian yang mencetak hasilnya dalam format JSON:

db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)

Output tersebut menunjukkan array Keterampilan yang tersarang di dalam dokumen karyawan. LaterAnda dapat menambahkan nilai baru ke dalam array dengan operator $push, atau membaca satu elemen berdasarkan posisi indeksnya. Menyimpan nilai yang terhubung dengan cara ini membuat setiap dokumen mandiri, mengurangi kebutuhan untuk melakukan join antar koleksi, dan membuat data lebih mudah dibaca dan dipelihara.

insert() vs insertOne() vs insertMany()

MongoDB menyediakan tiga metode terkait untuk menambahkan data. Tabel di bawah ini membandingkan ketiganya sehingga Anda dapat memilih yang tepat:

metode Tujuan Example
memasukkan() Metode lama yang menambahkan satu dokumen atau serangkaian dokumen. Metode ini masih berfungsi tetapi sudah usang di driver yang lebih baru. db.Employee.insert(myEmployee)
insertOne() Menambahkan tepat satu dokumen dan mengembalikan _id yang disisipkan. Lebih disukai untuk catatan tunggal. db.Employee.insertOne({ โ€ฆ })
sisipkanBanyak() Menambahkan serangkaian dokumen dalam satu panggilan dan mengembalikan semua _id yang dimasukkan. Lebih disukai untuk penyisipan massal. db.Employee.insertMany([ { โ€ฆ }, { โ€ฆ } ])

Untuk proyek baru, gunakan insertOne() dan insertMany() karena memberikan tujuan yang lebih jelas dan pelaporan kesalahan yang lebih baik. Metode insert() tetap tersedia terutama untuk kompatibilitas mundur dengan tutorial dan skrip lama.

Mencetak dalam format JSON

JSON adalah format yang disebut JavaNotasi Objek Skrip, dan hanyalah cara untuk menyimpan informasi dengan cara yang terorganisir dan mudah dibaca. Dalam contoh selanjutnya, kita akan menggunakan fungsi pencetakan JSON untuk melihat keluaran dalam format yang lebih baik.

Mari kita lihat contoh pencetakan dalam format JSON

db.Employee.find().forEach(printjson)

Code Penjelasan:

  1. Perubahan pertama adalah menambahkan fungsi bernama forEach() ke fungsi find(). Fungsi ini memastikan untuk secara eksplisit menelusuri setiap dokumen dalam koleksi. Dengan cara ini, Anda memiliki kontrol lebih besar atas apa yang dapat Anda lakukan dengan setiap dokumen dalam koleksi.
  2. Perubahan kedua adalah memasukkan perintah printjson ke pernyataan forEach. Ini akan menyebabkan setiap dokumen dalam koleksi ditampilkan dalam format JSON.

Jika perintah berhasil dijalankan, Output berikut akan ditampilkan

Keluaran:

Mencetak dalam Format JSON

Outputnya dengan jelas menunjukkan bahwa semua dokumen dicetak dalam gaya JSON.

Pertanyaan Umum Demo Slot

Ya. Meneruskan array dokumen ke insert() akan menambahkan semuanya dalam satu operasi. Penyisipan massal ini lebih cepat daripada memanggil insert() secara terpisah untuk setiap dokumen, meskipun insertMany() sekarang menjadi metode yang lebih disukai.

Ya. Jika dokumen tidak menyertakan kolom _id, MongoDB Secara otomatis menghasilkan ObjectId unik untuknya selama proses penyisipan, sehingga setiap catatan yang tersimpan dapat diidentifikasi dan diambil kembali di kemudian hari.

Secara default, MongoDB Melakukan penyisipan berurutan. Ia menambahkan dokumen sesuai urutan yang diberikan dan berhenti pada kesalahan pertama, meninggalkan dokumen yang tersisa tanpa disisipkan. Mengatur `ordered` ke `false` akan melanjutkan penyisipan meskipun terjadi kesalahan.

Ya. Alat AI dapat mengubah deskripsi data Anda dalam bahasa biasa menjadi pernyataan insertOne() atau insertMany(), termasuk array yang tertanam di dalamnya. Selalu tinjau bidang dan tipe data yang dihasilkan sebelum menjalankannya di basis data.

AI dapat menyarankan apakah akan menyematkan array di dalam dokumen atau merujuk ke koleksi terpisah, berdasarkan pola kueri Anda. Ini membantu pemula memodelkan data secara efisien sambil menghindari duplikasi yang tidak perlu atau penestingan yang terlalu dalam.

Ringkaslah postingan ini dengan: