Bagaimana cara menanyakan objek bersarang di mongodb?

Untuk mengkueri objek bersarang dalam, gunakan dot(. ) notasi di MongoDB. Mari kita buat koleksi dengan dokumen −

> db.demo350.insertOne(
.. {
..    id:101,
..    Name: "Chris",
..    details: [
..       {
..          _id: 1,
..          ClientNumber: "10001",
..          ClientDetails: [
.
..             {
..                Name:"David",
..                Age:29
..             },
..             {
..                Name:"Bob",
..                Age:31
..             }
..          ]
..       }
..    ]
.. }
.. );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e553a68f8647eb59e5620b8")
}
> db.demo350.insertOne(
.. {
..    id:102,
..    Name: "David",
..    details: [
..       {
..          _id: 2,
..          ClientNumber: "10002",
..          ClientDetails: [
..             {
..                Name:"Carol",
..                Age:42
..             },
..             {
..                Name:"John",
..                Age:37
..             }
..          ]
..       }
..    ]
.. }
.. );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e553a8ff8647eb59e5620b9")
}

Tampilkan semua dokumen dari koleksi dengan bantuan metode find() −

> db.demo350.find();
_

Ini akan menghasilkan output berikut -

{ "_id" : ObjectId("5e553a68f8647eb59e5620b8"), "id" : 101, "Name" : "Chris", "details" : [ { "_id" : 1, "ClientNumber" : "10001", "ClientDetails" : [ { "Name" : "David", "Age" : 29 }, { "Name" : "Bob", "Age" : 31 } ] } ] }
{ "_id" : ObjectId("5e553a8ff8647eb59e5620b9"), "id" : 102, "Name" : "David", "details" : [ { "_id" : 2, "ClientNumber" : "10002", "ClientDetails" : [ { "Name" : "Carol", "Age" : 42 }, { "Name" : "John", "Age" : 37 } ] } ] }

Berikut ini adalah cara menanyakan objek yang sangat bersarang −

> db.demo350.find({"details.ClientDetails.Name":"John"});

Ini akan menghasilkan output berikut -

{ "_id" : ObjectId("5e553a8ff8647eb59e5620b9"), "id" : 102, "Name" : "David", "details" : [ { "_id" : 2, "ClientNumber" : "10002", "ClientDetails" : [ { "Name" : "Carol", "Age" : 42 }, { "Name" : "John", "Age" : 37 } ] } ] }
_

MongoDB menawarkan operasi baca untuk mengambil data tersemat atau bersarang dari kumpulan atau mencari dokumen tersemat atau bersarang

Dengan bantuan metode db.collection.find()_, kita dapat melakukan operasi baca. Metode ini memilih dokumen dari koleksi yang disematkan atau disarangkan, lalu mengembalikan kursor ke dokumen tersebut

Sintaksis

>db.collection.find($filter, $projection)

Kami memiliki dua opsi dalam metode find(). $filter dan $project, dijelaskan secara singkat di bawah ini

  • $filter Opsi

    Anda dapat menggunakan parameter tipe Document_ untuk mengecualikan dokumen. Selain itu, Anda dapat menggunakannya dengan dokumen kosong atau tanpa parameter ini jika Anda ingin mengakses setiap dokumen dalam koleksi

  • $project Opsi

    Dengan menggunakan argumen ini, kita hanya bisa mendapatkan bidang tertentu yang memenuhi filter kueri yang disediakan untuk dokumen. Namun, tentu saja, Anda juga dapat menghilangkan parameter ini jika ingin mendapatkan semua bidang dokumen

Metode ini mengembalikan kursor ke dokumen yang cocok dengan kriteria kueri yang disediakan. Metode find()_ mengembalikan penunjuk ke dokumen saat Anda menggunakannya karena mengembalikan dokumen saat Anda menggunakannya

Anda dapat membaca lebih lanjut tentang metode find()_ di sini. Mari kita gunakan contoh berikut untuk memahami konsepnya

> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
_

Contoh kode di atas menggunakan teknik cantik untuk menemukan semua

> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
2 yang berasal dari
> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
3

Perbedaan utama antara kedua pendekatan ini adalah bahwa pemeriksaan sebelumnya untuk alamat hanya menyertakan bidang

> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
4, dan yang terakhir menganggap
> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
5

Bidang lain di

> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
5 atau hilang dari
> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
5 tidak berdampak pada bidang
> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
8. Misalnya, Anda akan melihat keluaran berikut setelah menjalankan kode di atas di
> db.users.find({address: {country: "United Kingdom"}}).pretty()
> db.users.find({address.country: "United Kingdom"}).pretty()
9

Bagaimana cara menanyakan array objek di MongoDB?

Untuk mencari larik objek di MongoDB, Anda dapat menggunakan operator $elemMatch . Operator ini memungkinkan kita untuk mencari lebih dari satu komponen dari sebuah objek array.

Bagaimana cara mencari di dalam array di MongoDB?

Untuk menanyakan apakah bidang larik berisi setidaknya satu elemen dengan nilai yang ditentukan, gunakan filter { . Untuk menentukan kondisi pada elemen dalam bidang larik, gunakan operator kueri dalam dokumen filter kueri. {

Apa metode yang disukai untuk menanyakan dokumen yang disematkan di MongoDB?

Gunakan operator $elemMatch untuk menanyakan dokumen yang disematkan. Gunakan operator bersyarat untuk membuat kueri dokumen yang disematkan. Gunakan Visual Query Builder untuk membuat kueri dokumen yang disematkan

Apa itu dokumen bersarang di MongoDB?

MongoDB memberi Anda fitur keren yang dikenal sebagai Dokumen Tersemat atau Bersarang. Dokumen tersemat atau dokumen bersarang adalah jenis dokumen yang berisi dokumen di dalam dokumen lain .