Cara mengakses dokumen yang disematkan di mongodb

Pada artikel ini, saya akan membahas Dokumen Tersemat di MongoDB dengan Contoh. Silakan baca artikel kami sebelumnya di mana kami membahas Menghapus Dokumen di MongoDB dengan Contoh
Dokumen Tertanam MongoDB

Di MongoDB, Anda diizinkan membuat dokumen tersemat/ Dokumen bersarang. Dokumen bersarang berarti dokumen di dalam dokumen lain. Atau kita bisa mengatakan bahwa dokumen yang disematkan adalah dokumen yang berisi dokumen bersarang, dokumen bersarang dapat berisi sub-dokumen lain, dan seterusnya. Anda diperbolehkan menyarangkan dokumen hingga 100 level dan ukuran keseluruhan dokumen tidak boleh melebihi 16 MB

Buat Dokumen Tersemat di MongoDB

Dokumen dibuat dengan menggunakan kurung kurawal({}) dan di dalam kurung kurawal ini, kami menyimpan data dalam pasangan bidang-nilai. Jadi, di dalam field ini, kita bisa menyematkan dokumen lain dengan field-value pair

Sintaksis
{
bidang1. {bidang1. nilai, bidang2. nilai}
bidang2. nilai
}

Contoh untuk Memahami Dokumen Tersemat di MongoDB

Di sini, di contoh di bawah ini, kami menggunakan Database dotnettutorial. Sekarang di database ini, kami memasukkan dokumen ke koleksi penulis. Di dalam dokumen ini, kami memiliki bidang nama yang berisi dokumen bersarang dengan pasangan nilai bidang fName, mName, dan lName

gunakan tutorial dotnet
db. penulis. insertOne({ nama. {fName. "Sumit", Nama. "kumar", lNama. “Singh”},
.. grup. "D",
… tutorial. “MongoDB”,
… nomor artikel. 23
… })

Cara mengakses dokumen yang disematkan di mongodb

Kueri pada Dokumen Bersarang/Tersemat di MongoDB

Untuk melakukan kueri pada bidang dokumen bersarang, kami menggunakan notasi titik

Sintaks. {“namabidang. nestedFieldName” }

Contoh

Di sini, di contoh di bawah ini, kami menemukan semua dokumen dengan nama tengah penulisnya adalah "Kumar"

db. penulis. temukan({“nama. Nama". “kumar”}). cukup()

Di sini kami menggunakan notasi titik untuk mengakses bidang dokumen yang disematkan

Cara mengakses dokumen yang disematkan di mongodb

Array Dokumen Bersarang di MongoDB

Di MongoDB, kami diizinkan membuat array dokumen bersarang. Ini berarti satu bidang dapat berisi beberapa dokumen yang disematkan. Array dibaca dengan menggunakan kurung kurawal [] dan setiap dokumen dipisahkan dengan koma

Sintaksis
{
bidang1. [{bidang1. nilai, bidang2. nilai}, {bidang1. nilai, bidang2. nilai}, {bidang1. nilai, bidang2. nilai}]
bidang2. nilai
}

Contoh

Di sini, di contoh di bawah ini, koleksi penjualan memiliki satu dokumen. Dalam dokumen ini, bidang kursus berisi larik dokumen yang disematkan

db. penjualan. sisipkanSatu({
… nomor kursus. 3,
… Tipe. "pemrograman",
… kursus. [{nama. "mongoDB", artikel. 40}, {nama. "C++", artikel. 50}, {nama. ”C#”, artikel. 80}]
… })

Kueri pada larik Dokumen Bersarang/tertanam

Untuk melakukan kueri pada bidang yang berisi array dokumen bersarang atau kueri pada bidang dokumen bersarang kami menggunakan notasi titik

Sintaks. {“namabidang. nestedFieldName”}

Cara mengakses dokumen yang disematkan di mongodb

Contoh

Di sini, dalam contoh di bawah ini, kami menampilkan semua dokumen tempat kursus. namanya mongoDB

db. penjualan. temukan({“kursus. nama". ”mongoDB”}). cukup()

Cara mengakses dokumen yang disematkan di mongodb

Pada artikel selanjutnya, saya akan membahas Memperbarui Dokumen Tunggal di MongoDB dengan Contoh. Di sini, di artikel ini, saya mencoba menjelaskan Dokumen Tersemat di MongoDB dengan Contoh. Saya harap Anda menikmati artikel ini

Jika Anda baru menggunakan MongoDB, Anda mungkin tidak memiliki banyak pengalaman bekerja dengan dokumen tersemat. Namun, ada baiknya meluangkan waktu untuk mempelajari cara menggunakannya– model dokumen tersemat adalah konsep yang hebat, memungkinkan Anda menyimpan semua jenis informasi terkait dalam satu dokumen. Struktur database "denormalized" ini menawarkan kinerja yang lebih baik dan seringkali memungkinkan aplikasi membuat lebih sedikit kueri. Dalam tutorial ini, kami akan memberikan instruksi untuk bekerja dengan dokumen tersemat dalam koleksi MongoDB

Prasyarat

Sebelum kita dapat melihat beberapa contoh, penting untuk meninjau persyaratan sistem. Untuk tugas ini, ada beberapa prasyarat penting yang harus ada sebelum melanjutkan

  • MongoDB dan driver Java MongoDB harus dikonfigurasi dengan benar sebelumnya

  • Java JDK terbaru harus diinstal dan dikonfigurasi dengan benar sebelumnya

  • Terakhir, layanan MongoDB harus berjalan

CATATAN. Untuk contoh yang digambarkan dalam tutorial ini, kami berasumsi bahwa versi MongoDB yang digunakan adalah 4. 0 dan MongoDB Java Driver adalah 3. 8. 2

Apa itu Dokumen MongoDB Tertanam?

Pada titik ini, kita hampir siap untuk mendalami beberapa contoh kode, tetapi pertama-tama, mari luangkan waktu sejenak untuk memahami dokumen tersemat dan cara kerjanya. Dokumen MongoDB yang tertanam, atau bersarang, adalah dokumen normal yang bersarang di dalam dokumen lain dalam koleksi MongoDB

Berikut ini adalah contoh dokumen yang disematkan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

{
"_Indo". ObjectId("5ce8050c3fd48a59557122ca"),
"Nama Pelanggan". "Yeshua Galisanao",
"alamat pelanggan". [
{
"alamat utama". [
{
"jalan". "#43 Jalan Mudah",
"kota". "Niceton",
"negara". "PH",
"zip". "57733"
}
]
},
{
"alamat sekunder". [
{
"jalan". "43",
"kota". "seattle",
"negara". "PH",
"zip". "57667"
}
]
}
]
}

Dokumen yang disematkan sangat berguna ketika ada hubungan satu-ke-banyak di antara dokumen. Dalam contoh yang ditunjukkan di atas, kita melihat bahwa satu pelanggan memiliki beberapa alamat yang diasosiasikan dengannya. Struktur dokumen bersarang memudahkan untuk mengambil informasi alamat lengkap tentang pelanggan ini hanya dengan satu kueri

Kapan Menggunakan Dokumen MongoDB Tertanam

Ada beberapa poin penting yang perlu dipertimbangkan sebelum menggunakan struktur dokumen tersemat di MongoDB

  1. Apakah dokumen anak MongoDB diperlukan setiap kali dokumen induk MongoDB diperlukan melalui kueri?
  2. Penghapusan dokumen induk MongoDB juga akan menghapus dokumen anak MongoDB– apakah ini dapat diterima untuk kumpulan data Anda?
  3. Di MongoDB, ukuran dokumen harus lebih kecil dari ukuran maksimal BSON untuk dokumen, yaitu 16 megabyte. Jika ukuran dokumen tidak menjadi masalah, maka dokumen yang disematkan mungkin layak sebagai struktur dokumen MongoDB

Koneksi ke Penerapan MongoDB

Mari alihkan perhatian kita ke kode Java sekarang. Contoh kami dimulai dengan koneksi ke MongoDB

MongoClient mongo = Klien Mongo. buat("mongodb. //127. 0. 0. 1. 27017");
MongoDatabase db = mongo. getDatabase("customerDB");
Koleksi Koleksi Mongo = db. getCollection("koleksipelanggan");

Kode yang ditunjukkan di atas membuat koneksi ke penerapan MongoDB. Ini kemudian melanjutkan untuk mengakses database (customerDB) dan koleksi (customerCollection)

Masukkan Dokumen MongoDB Tersemat menggunakan Java

Selanjutnya, mari coba masukkan dokumen tersemat ke dalam koleksi MongoDB kita. Kode di bawah ini akan menyisipkan dokumen MongoDB tersemat dalam format Array menggunakan Arrays()

CATATAN Skema dokumen yang ditunjukkan di bawah ini hanya untuk tujuan demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Dokumen nestDoc = Dokumen baru("namapelanggan", "Yeshua Galisanao")
append("alamat-pelanggan",
Array. asList(
Dokumen baru(
"alamat utama", Array. asList(
Dokumen baru ("jalan", "#43 Jalan Bagus")
tambahkan ("kota", "Niceton")
tambahkan ("status", "PH")
tambahkan("zip", "57733"))
),
Dokumen baru ("alamat sekunder",
Array. asList(
Dokumen baru ("jalan", "#54 Jalan Mudah")
tambahkan ("kota", "Easyton")
tambahkan ("status", "PH")
tambahkan("zip", "57667")
)
)));
db. getCollection("koleksipelanggan"). insertOne(nestDoc);

Dengan menggunakan new Document, MongoDB memungkinkan pengguna untuk membuat dokumen lain, menempatkan BasicDBObject di dalam BasicDBObj

Untuk memverifikasi apakah operasi di atas berhasil dijalankan, gunakan perintah yang ditunjukkan di bawah ini di Mongo Shell

db. koleksi pelanggan. Temukan(). cukup()

Hasilnya akan terlihat seperti berikut

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

{
"_Indo". ObjectId("5ce88f1a3fd48a6e492ef61b"),
"Nama Pelanggan". "Yeshua Galisanao",
"alamat pelanggan". [
{
"alamat utama". [
{
"jalan". "#43 Jalan Bagus",
"kota". "Niceton",
"negara". "PH",
"zip". "57733"
}
]
},
{
"alamat sekunder". [
{
"jalan". "#54 Jalan Mudah",
"kota". "Easyton",
"negara". "PH",
"zip". "57667"
}
]
}
]
}

Hasil yang digambarkan di atas menunjukkan dokumen tersemat di dalam dokumen MongoDB. Bidang customer-address menampung larik dua dokumen. Struktur dokumen tersemat seperti ini sering terlihat dalam aplikasi seperti e-niaga, di mana pelanggan sering kali memiliki alamat berbeda untuk tujuan pengiriman

Sekarang setelah kita melihat cara menyisipkan dokumen tersemat, mari coba perbarui. Kode yang ditunjukkan di bawah ini akan memperbarui dokumen MongoDB tersemat menggunakan MongoDB “Dot Notation”

Notasi Dot — MongoDB menggunakan notasi titik untuk memungkinkan pengguna mengakses elemen array dan untuk dapat mengakses bidang yang ada di dalam dokumen tersemat

Kueri BasicDBObject = new BasicDBObject();
pertanyaan. put("namapelanggan","Yeshua Galisanao");

Pembaruan BasicDBObject = BasicDBObject baru();
memperbarui. put("$set", new BasicDBObject("alamat-pelanggan. 1. secondaryAddress. 0. jalan", "#15 2Jalan Mudah"));

db. getCollection("koleksipelanggan"). perbaruiSatu(
permintaan, perbarui);

Gambar di bawah menunjukkan hierarki dokumen customer-address. Bidang customer-address berisi dua dokumen yang disematkan di dalamnya. primaryAddress dan secondaryAddress. Dalam hal array, ini memiliki posisi indeks masing-masing 0 dan 1

Dokumen primaryAddress dan secondaryAddress terdiri dari field-field yang memiliki posisi index masing-masing, yang dapat dilihat di bawah ini. Dalam contoh kami yang ditunjukkan di atas, kode memperbarui bidang new Document1 dalam dokumen secondaryAddress

Cara mengakses dokumen yang disematkan di mongodb

Mari kita lihat lebih dekat kode berikut

memperbarui. put("$set", new BasicDBObject("alamat-pelanggan. 1. secondaryAddress. 0. jalan", "#15 2Jalan Mudah"));

Kode ini akan mengakses bidang new Document_3 yang memiliki indeks 1; . Di dalam secondaryAddress, itu akan mengakses bidang bernama new Document1 di posisi indeks 0, kemudian akan menetapkan nilai baru yang ditentukan dalam kode

Untuk memverifikasi menggunakan shell MongoDB

Hasilnya akan terlihat seperti berikut

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

{
"_Indo". ObjectId("5ce88f1a3fd48a6e492ef61b"),
"Nama Pelanggan". "Yeshua Galisanao",
"alamat pelanggan". [
{
"alamat utama". [
{
"jalan". "#43 Jalan Bagus",
"kota". "Niceton",
"negara". "PH",
"zip". "57733"
}
]
},
{
"alamat sekunder". [
{
"jalan". "#15 2Jalan Mudah",
"kota". "Easyton",
"negara". "PH",
"zip". "57667"
}
]
}
]
}

Perhatikan bahwa nilai bidang new Document_1 di secondaryAddress telah berhasil diperbarui

Kesimpulan

Saat Anda memiliki dokumen di mana ada hubungan satu-ke-banyak, akan sangat membantu jika menggunakan struktur dokumen yang disematkan, atau bertumpuk. Bekerja dengan dokumen tersemat dalam koleksi MongoDB tidaklah sulit selama Anda memahami bagaimana struktur unik ini harus digunakan. Tutorial ini menunjukkan cara menyisipkan dan memperbarui Dokumen MongoDB tersemat menggunakan Java. Pastikan untuk melanjutkan ke Bagian 2 dari tutorial ini untuk mempelajari lebih lanjut tentang cara berinteraksi dengan dokumen MongoDB tersemat

Apa itu dokumen yang disematkan di MongoDB?

Dokumen tersemat adalah cara yang efisien dan bersih untuk menyimpan data terkait, terutama data yang sering diakses bersama . Secara umum, saat mendesain skema untuk MongoDB, Anda harus memilih menyematkan secara default, dan menggunakan referensi dan gabungan sisi aplikasi atau sisi basis data hanya jika bermanfaat.

Bagaimana cara memperbarui dokumen yang disematkan di MongoDB?

Perbarui Dokumen dalam Array . Gunakan operator $ posisi untuk mengakses bidang dalam dokumen tersemat dengan notasi titik pada operator $. The positional $ operator facilitates updates to arrays that contain embedded documents. Use the positional $ operator to access the fields in the embedded documents with the dot notation on the $ operator.

Bagaimana cara melihat konten database MongoDB?

Jika Anda ingin memeriksa daftar database Anda, gunakan perintah show dbs . Basis data yang Anda buat (mydb) tidak ada dalam daftar. Untuk menampilkan database, Anda perlu memasukkan setidaknya satu dokumen ke dalamnya.

Bagaimana cara mendapatkan semua dokumen saya di MongoDB?

Untuk mengembalikan semua dokumen dalam koleksi gunakan dokumen kosong({}) . Jenis parameter ini adalah dokumen. proyeksi. Ini menentukan bidang untuk dikembalikan dalam dokumen yang cocok dengan kriteria pemilihan. Untuk mengembalikan semua bidang dalam dokumen yang cocok, hapus parameter ini.