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 operator $exists ruft Dokumente ab, die das angegebene Feld enthalten. Der $exists-Operator gibt einen Wert von "true" für Dokumente zurück, die das angegebene Feld enthalten, auch wenn der Wert des Felds null ist. Der $exists-Operator gibt einen Wert des Typs „fall“ für Dokumente zurück, die das angegebene Feld in der Dokumentstruktur nicht enthalten.
Syntax
{
<field>: { $exists: <true or false> }
}
Die Parameter
| Parameter | Description |
|---|---|
field |
Das Feld, das auf das Vorhandensein überprüft werden soll. |
true or false |
true für Dokumente, die das Feld (einschließlich NULL-Werten) enthalten, false für Dokumente, die das Feld nicht enthalten. |
Examples
Betrachten Sie dieses Beispieldokument aus der Stores-Sammlung.
{
"_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: Suchen von Geschäften mit Promoereignissen
Um zwei Geschäfte mit Promoereignissen zu finden, führen Sie eine Abfrage mit dem $exists-Operator im promotionEvents-Array aus. Projizieren Sie dann nur die Felder "ID" und "promotionEvents", und beschränken Sie die Ergebnisse auf zwei Dokumente aus dem Resultset.
db.stores.find({
"promotionEvents": {
$exists: true
}
}, {
"_id": 1,
"promotionEvents": {
$slice: 1
}
}).limit(2)
Diese Abfrage gibt die folgenden Ergebnisse zurück:
[
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"location": {
"lat": -74.0427,
"lon": 160.8154
},
"staff": {
"employeeCount": {
"fullTime": 9,
"partTime": 18
}
},
"sales": {
"salesByCategory": [
{
"categoryName": "Stockings",
"totalSales": 25731
}
],
"revenue": 25731
},
"promotionEvents": [
{
"eventName": "Mega Savings Extravaganza",
"promotionalDates": {
"startDate": {
"Year": 2023,
"Month": 6,
"Day": 29
},
"endDate": {
"Year": 2023,
"Month": 7,
"Day": 7
}
},
"discounts": [
{
"categoryName": "Stockings",
"discountPercentage": 16
},
{
"categoryName": "Tree Ornaments",
"discountPercentage": 8
}
]
}
],
"company": "Lakeshore Retail",
"city": "Marvinfort",
"storeOpeningDate": "2024-10-01T18:24:02.586Z",
"lastUpdated": "2024-10-02T18:24:02.000Z"
},
{
"_id": "923d2228-6a28-4856-ac9d-77c39eaf1800",
"name": "Lakeshore Retail | Home Decor Hub - Franciscoton",
"location": {
"lat": 61.3945,
"lon": -3.6196
},
"staff": {
"employeeCount": {
"fullTime": 7,
"partTime": 6
}
},
"sales": {
"salesByCategory": [
{
"categoryName": "Lamps",
"totalSales": 19880
},
{
"categoryName": "Rugs",
"totalSales": 20055
}
],
"revenue": 39935
},
"promotionEvents": [
{
"eventName": "Unbeatable Markdown Mania",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 3,
"Day": 25
},
"endDate": {
"Year": 2024,
"Month": 4,
"Day": 1
}
},
"discounts": [
{
"categoryName": "Vases",
"discountPercentage": 8
},
{
"categoryName": "Lamps",
"discountPercentage": 5
}
]
}
],
"company": "Lakeshore Retail",
"city": "Franciscoton",
"lastUpdated": "2024-12-02T12:01:46.000Z",
"storeOpeningDate": "2024-09-03T07:21:46.045Z"
}
]
Beispiel 2: Bestätigen des Vorhandenseins eines geschachtelten Felds
Um zwei Geschäfte mit Vollzeitbeschäftigten abzurufen, führen Sie eine Abfrage mit dem $exists-Operator im geschachtelten Feld „staff.employeeCount.fullTime“ aus. Projektieren Sie dann nur die Namen- und ID-Felder, und beschränken Sie die Ergebnisse auf zwei Dokumente aus dem Resultset.
db.stores.find({
"staff.employeeCount.fullTime": {
$exists: true
}
}, {
"_id": 1,
"staff.employeeCount": 1
}).limit(2)
Diese Abfrage gibt die folgenden Ergebnisse zurück:
[
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"staff": {
"employeeCount": {
"fullTime": 9,
"partTime": 18
}
}
},
{
"_id": "923d2228-6a28-4856-ac9d-77c39eaf1800",
"staff": {
"employeeCount": {
"fullTime": 7,
"partTime": 6
}
}
}
]