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 $eq Operator wird verwendet, um Dokumente abzugleichen, bei denen der Wert eines Felds mit einem angegebenen Wert übereinstimmt. Der $eq Operator filtert Dokumente basierend auf exakten Übereinstimmungen auf Abfrage-Prädikaten, um Dokumente mit bestimmten Werten, Objekten und Arrays abzurufen.
Syntax
{
field: {
$eq: <value>
}
}
Die Parameter
| Parameter | Description |
|---|---|
field |
Das zu vergleichende Feld |
value |
Der wert, mit dem verglichen werden soll |
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: Verwenden des $eq Filters für ein Feld auf Stammebene
Um einen Laden mit dem Namen "Felsinnovationen | Home Security Place - Ankundingburgh", führen Sie eine Abfrage mit dem $eq Prädikat aus, um das Namensfeld und projekt nur die ID- und Namensfelder im Ergebnis abzugleichen.
db.stores.find({
name: {
$eq: "Boulder Innovations | Home Security Place - Ankundingburgh"
}
}, {
name: 1
})
Diese Abfrage gibt das folgende Ergebnis zurück:
[
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh"
}
]
Beispiel 2: Verwenden von $eq Filter für ein geschachteltes Feld
Um einen Store mit einem Gesamtumsatz von genau 37.015 $ zu finden, führen Sie eine Abfrage mit dem $eq-Operator aus, indem Sie die Punktnotation für das Feld "geschachteltes Feld sales.totalSales" verwenden.
db.stores.find({
"sales.totalSales": {
$eq: 37015
}
}, {
name: 1,
"sales.totalSales": 1
})
Dadurch wird das folgende Ergebnis zurückgegeben:
[
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh",
"sales": { "totalSales": 37015 }
}
]
Beispiel 3: Verwenden von $eq für einzelne Elemente in einem Array
Die folgende Abfrage ruft Dokumente mithilfe von Gleichheits-Prädikaten für einzelne Elemente innerhalb des geschachtelten arrays promotionEvents.discounts ab.
Diese Abfrage sucht nach einer Gleichheitsübereinstimmung für eines der Objekte innerhalb des geschachtelten Rabattarrays.
db.stores.find({
"promotionEvents.discounts": {
$eq: {
categoryName: "Alarm Systems",
discountPercentage: 5
}
}
}, {
name: 1
}, {
limit: 2
})
Diese Abfrage gibt die folgenden Ergebnisse zurück:
[
{
"_id": "ece5bf6c-3255-477e-bf2c-d577c82d6995",
"name": "Proseware, Inc. | Home Security Boutique - Schambergertown"
},
{
"_id": "7baa8fd8-113a-4b10-a7b9-2c116e976491",
"name": "Tailwind Traders | Home Security Pantry - Port Casper"
}
]
Beispiel 4: Verwenden von $eq zum Abgleichen des gesamten Arrays
Diese Abfrage sucht nach Dokumenten basierend auf exakter Übereinstimmung auf ALLEN Werten innerhalb des Arrays "promotionEvents.discounts".
db.stores.find({
"promotionEvents.discounts": {
$eq: [{
categoryName: "Alarm Systems",
discountPercentage: 5
}, {
categoryName: "Door Locks",
discountPercentage: 12
}]
}
}, {
name: 1
})
Diese Abfrage gibt das folgende Ergebnis zurück:
[
{
"_id": "aa9ad64c-29da-42f8-a1f0-30e03bf04a2d",
"name": "Boulder Innovations | Home Security Market - East Sheridanborough"
}
]
Hinweis
Für einen Gleichheitsabgleich eines gesamten Arrays muss die Reihenfolge der angegebenen Werte in den Gleichheitsprädikaten ebenfalls exakt übereinstimmen.
Verwandte Inhalte
- Überprüfen Sie die Optionen für die Migration von MongoDB zu Azure DocumentDB.
- Weitere Informationen zur Featurekompatibilität mit MongoDB.