Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der find Befehl in Azure DocumentDB wird verwendet, um Dokumente in einer Auflistung abzufragen. Dieser Befehl ist grundlegend für Datenabrufvorgänge und kann mit Filtern, Projektionen und Abfrageoptionen angepasst werden, um die Ergebnisse zu optimieren.
Syntax
Die grundlegende Syntax für den find Befehl lautet:
db.collection.find(query, projection, options)
Die Parameter
| Parameter | Description |
|---|---|
query |
Ein Dokument, das die Kriterien für die abzurufenden Dokumente angibt |
projection |
(Optional) Ein Dokument, das die Felder in den übereinstimmenden Dokumenten angibt, die im Resultset zurückgegeben werden sollen |
options |
(Optional) Ein Dokument, das Optionen für das Abfrageverhalten und die Ergebnisse angibt |
Beispiel(n)
Betrachten Sie dieses Beispieldokument aus der Speichersammlung in der StoreData-Datenbank.
{
"_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
}
]
}
]
}
Beispiel 1: Abrufen aller Dokumente
Der Befehl "suchen()" ohne Abfragefilter gibt alle Dokumente in der Auflistung zurück.
db.stores.find()
Beispiel 2: Abrufen von Dokumenten mit Abfragefiltern
Dient zum Abrufen von Dokumenten mithilfe eines Filters für die Namenseigenschaft.
db.stores.find({"name": "Fourth Coffee | Stationery Haven - New Franco"})
Beispiel 3: Abrufen von Dokumenten mit Abfragefiltern für Objekte
Abrufen von Dokumenten mithilfe von Abfragefiltern in den Feldern lat und lon innerhalb des Speicherortobjekts.
db.stores.find({"location.lat": 13.5236, "location.lon": -82.5707})
Wenn die Punktnotation (.) nicht zum Verweisen auf Felder innerhalb eines Objekts verwendet wird, sollte der Abfragefilter exakt mit dem gesamten Objekt übereinstimmen, einschließlich der Reihenfolge der Felder.
db.stores.find({"location": {"lat": 13.5236, "lon": -82.5707}})
Beispiel 4: Abrufen von Dokumenten mit Abfragefiltern in Arrays
Rufen Sie Dokumente aus dem Array "promotionEvents" ab, wobei der eventName "Grand Bargain Gala" lautet.
db.stores.find({"promotionEvents.eventName": "Grand Bargain Gala"})
Rufen Sie Dokumente aus dem Array "Rabatte" ab, das innerhalb des Arrays "promotionEvents" geschachtelt ist, wobei der CategoryName "Area Rugs" lautet.
db.stores.find({"promotionEvents.discounts.categoryName": "Area Rugs"})
Projektionen
Das zweite Dokument im Befehl "Suchen" gibt die Liste der Felder an, die in der Antwort projiziert werden sollen.
Einschließen eines bestimmten Felds oder mehrerer Felder in die Antwort
Ein ganzzahliger Wert ungleich Null oder ein boolescher Wert von "true" enthält das Feld in der Antwort.
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})
Alle vier Abfragen sind gleichwertig und geben die Aufnahme der Felder "Location" und "sales" in die Serverantwort an.
{
"_id": "b5c9f932-4efa-49fd-86ba-b35624d80d95",
"location": {
"lat": 13.5236,
"lon": -82.5707
},
"sales": {
"totalSales": 35346,
"salesByCategory": [
{
"categoryName": "Rulers",
"totalSales": 35346
}
]
}
}
Ausschließen eines bestimmten Felds oder mehrerer Felder in der Antwort
Ein ganzzahliger Wert von Null oder ein boolescher Wert von false schließt das angegebene Feld aus der Abfrageantwort aus.
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})
Beide Abfragen sind gleichwertig und geben die folgende Antwort zurück:
{
"_id": "b5c9f932-4efa-49fd-86ba-b35624d80d95",
"name": "Fourth Coffee | Stationery Haven - New Franco",
"staff": {
"totalStaff": {
"fullTime": 17,
"partTime": 5
}
}
}
Hinweis
Standardmäßig ist das feld _id in der Serverantwort enthalten. Das Projektionsdokument darf sowohl Einschluss- als auch Ausschlussklauseln nicht enthalten. Das feld _id ist jedoch die einzige Ausnahme für diese Regel und kann zusammen mit einer Liste von Feldern ausgeschlossen werden, die eingeschlossen und umgekehrt werden sollen.
Projizieren des ersten Elements in einem Array, das den Abfragefilterkriterien entspricht
Der Befehl "arrayFieldName".$ projiziert nur das erste Vorkommen eines Objekts in einem Array, das den angegebenen Abfragefiltern entspricht.
db.stores.find({"promotionEvents.eventName": "Grand Bargain Gala"}, {"promotionEvents.$": true})
Eines der zurückgegebenen Dokumente zeigt nur das erste Element im promotionEvents-Array mit dem Ereignisnamen "Grand Bargain Gala" an, während alle anderen Elemente im Array ausgeschlossen werden.
{
"_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
}
]
}
]
}
Projektspezifische Elemente in einem Array, die den Abfragefilterkriterien entsprechen
Diese Abfrage projektiert die EventName-Eigenschaft und die geschachtelte Year-Eigenschaft innerhalb des Arrays "promotionEvents".
db.stores.find({"promotionEvents.eventName": "Grand Bargain Gala"}, {"promotionEvents.eventName": true, "promotionEvents.promotionalDates.startDate.Year": true})
Eines der zurückgegebenen Dokumente zeigt die angegebenen Arrayelemente, die in der Antwort projiziert wurden.
{
"_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
}
}
}
]
}