Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
find Perintah di Azure DocumentDB digunakan untuk mengkueri dokumen dalam koleksi. Perintah ini sangat mendasar untuk operasi pengambilan data dan dapat disesuaikan dengan filter, proyeksi, dan opsi kueri untuk menyempurnakan hasil.
Syntax
Sintaks dasar untuk find perintah adalah:
db.collection.find(query, projection, options)
Parameter-parameternya
| Pengaturan | Description |
|---|---|
query |
Dokumen yang menentukan kriteria untuk dokumen yang akan diambil |
projection |
(Opsional) Dokumen yang menentukan bidang dalam dokumen yang cocok untuk dikembalikan dalam tataan hasil |
options |
(Opsional) Dokumen yang menentukan opsi untuk perilaku dan hasil kueri |
Contoh
Pertimbangkan dokumen sampel ini dari koleksi penyimpanan di database StoreData.
{
"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
"name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
"location": {
"lat": -89.2384,
"lon": -46.4012
},
"staff": {
"totalStaff": {
"fullTime": 8,
"partTime": 20
}
},
"sales": {
"totalSales": 75670,
"salesByCategory": [
{
"categoryName": "Wine Accessories",
"totalSales": 34440
},
{
"categoryName": "Bitters",
"totalSales": 39496
},
{
"categoryName": "Rum",
"totalSales": 1734
}
]
},
"promotionEvents": [
{
"eventName": "Unbeatable Bargain Bash",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 6,
"Day": 23
},
"endDate": {
"Year": 2024,
"Month": 7,
"Day": 2
}
},
"discounts": [
{
"categoryName": "Whiskey",
"discountPercentage": 7
},
{
"categoryName": "Bitters",
"discountPercentage": 15
},
{
"categoryName": "Brandy",
"discountPercentage": 8
},
{
"categoryName": "Sports Drinks",
"discountPercentage": 22
},
{
"categoryName": "Vodka",
"discountPercentage": 19
}
]
},
{
"eventName": "Steal of a Deal Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 29
}
},
"discounts": [
{
"categoryName": "Organic Wine",
"discountPercentage": 19
},
{
"categoryName": "White Wine",
"discountPercentage": 20
},
{
"categoryName": "Sparkling Wine",
"discountPercentage": 19
},
{
"categoryName": "Whiskey",
"discountPercentage": 17
},
{
"categoryName": "Vodka",
"discountPercentage": 23
}
]
}
]
}
Contoh 1: Mengambil semua dokumen
Perintah find() tanpa filter kueri mengembalikan semua dokumen dalam koleksi.
db.stores.find()
Contoh 2: Mengambil dokumen dengan filter kueri
Ambil dokumen menggunakan filter pada properti nama.
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"})
Contoh 3: Mengambil dokumen dengan filter kueri pada objek
Ambil dokumen menggunakan filter kueri pada bidang lat dan lon dalam objek lokasi.
db.stores.find({"location.lat": 13.5236, "location.lon": -82.5707})
Saat notasi titik (.) tidak digunakan untuk mereferensikan bidang dalam objek, filter kueri harus sama persis dengan seluruh objek termasuk urutan bidang.
db.stores.find({"location": {"lat": 13.5236, "lon": -82.5707}})
Contoh 4: Mengambil dokumen dengan filter kueri pada array
Ambil dokumen dari array promotionEvents di mana eventName adalah "Grand Bargain Gala".
db.stores.find({"promotionEvents.eventName": "Grand Bargain Gala"})
Ambil dokumen dari array "diskon", yang ditumpuk dalam array promotionEvents di mana categoryName adalah "Area Rugs".
db.stores.find({"promotionEvents.discounts.categoryName": "Area Rugs"})
Proyeksi
Dokumen kedua dalam perintah temukan menentukan daftar bidang yang akan diproyeksikan dalam respons.
Menyertakan bidang tertentu atau beberapa bidang dalam respons
Nilai bilangan bulat bukan nol atau nilai boolean true menyertakan bidang dalam respons.
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"}, {"location": 1, "sales": 1})
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"}, {"location": true, "sales": true})
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"}, {"location": 1, "sales": true})
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"}, {"location": 1, "sales": -5})
Keempat kueri setara dan menentukan penyertaan bidang "lokasi" dan "penjualan" dalam respons server.
{
"_id": "b5c9f932-4efa-49fd-86ba-b35624d80d95",
"location": {
"lat": 13.5236,
"lon": -82.5707
},
"sales": {
"totalSales": 35346,
"salesByCategory": [
{
"categoryName": "Rulers",
"totalSales": 35346
}
]
}
}
Mengecualikan bidang tertentu atau beberapa bidang dalam respons
Nilai bilangan bulat nol atau nilai boolean false mengecualikan bidang yang ditentukan dari respons kueri.
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"}, {"promotionEvents": 0, "location": 0, "sales": 0})
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"}, {"promotionEvents": false, "location": false, "sales": false})
Kedua kueri setara dan mengembalikan respons berikut:
{
"_id": "b5c9f932-4efa-49fd-86ba-b35624d80d95",
"name": "Fourth Coffee | Stationery Haven - New Franco",
"staff": {
"totalStaff": {
"fullTime": 17,
"partTime": 5
}
}
}
Nota
Secara default, bidang _id disertakan dalam respons server. Dokumen proyeksi tidak boleh berisi klausul penyertaan dan pengecualian. Namun, bidang _id adalah satu-satunya pengecualian untuk aturan ini dan dapat dikecualikan bersama dengan daftar bidang yang akan disertakan dan sebaliknya.
Memproyekan elemen pertama dalam array yang cocok dengan kriteria filter kueri
Perintah "arrayFieldName".$ hanya memproyeksikan kemunculan pertama objek dalam array yang cocok dengan filter kueri yang ditentukan.
db.stores.find({"promotionEvents.eventName": "Grand Bargain Gala"}, {"promotionEvents.$": true})
Salah satu dokumen yang dikembalikan hanya menunjukkan elemen pertama dalam array promotionEvents yang memiliki nama acara "Grand Bargain Gala" sambil mengecualikan semua elemen lain dalam array.
{
"_id": "d7fe6fb9-57e8-471a-b8d2-714e3579a415",
"promotionEvents": [
{
"eventName": "Grand Bargain Gala",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 3,
"Day": 25
},
"endDate": {
"Year": 2024,
"Month": 4,
"Day": 1
}
},
"discounts": [
{
"categoryName": "Area Rugs",
"discountPercentage": 7
},
{
"categoryName": "Vinyl Flooring",
"discountPercentage": 12
}
]
}
]
}
Memproyekan elemen tertentu dalam array yang cocok dengan kriteria filter kueri
Kueri ini memproyeksikan properti eventName dan properti Tahun berlapis dalam array promotionEvents.
db.stores.find({"promotionEvents.eventName": "Grand Bargain Gala"}, {"promotionEvents.eventName": true, "promotionEvents.promotionalDates.startDate.Year": true})
Salah satu dokumen yang dikembalikan menunjukkan elemen array yang ditentukan yang diproyeksikan dalam respons.
{
"_id": "d7fe6fb9-57e8-471a-b8d2-714e3579a415",
"promotionEvents": [
{
"eventName": "Grand Bargain Gala",
"promotionalDates": {
"startDate": {
"Year": 2024
}
}
},
{
"eventName": "Grand Bargain Bash",
"promotionalDates": {
"startDate": {
"Year": 2024
}
}
},
{
"eventName": "Epic Bargain Bash",
"promotionalDates": {
"startDate": {
"Year": 2024
}
}
}
]
}