Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A: núcleo virtual de MongoDB
El $eq
operador se usa para buscar coincidencias con documentos en los que el valor de un campo es igual a un valor especificado. Este operador se usa para filtrar documentos basados en coincidencias exactas y con predicados de consulta para recuperar documentos con valores, objetos y matrices específicos.
Sintaxis
La sintaxis del $eq
operador es:
{ "field": { "$eq": "value" } }
Parámetros
Parámetro | Descripción |
---|---|
field |
Campo que se va a comparar |
value |
El valor con el que comparar |
Ejemplos
Ten en cuenta este documento de ejemplo de la colección "Stores" en la base de datos 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
}
]
}
]
}
Ejemplo 1: Buscar documentos basados en una coincidencia de igualdad en el valor de un campo de nivel raíz
Para encontrar una tienda con el nombre "Boulder Innovations | Home Security Place - Ankundingburgh":
db.stores.find({ "name": { "$eq": "Boulder Innovations | Home Security Place - Ankundingburgh" } }, {"name": 1})
Esto devuelve los siguientes resultados:
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh"
}
Ejemplo 2: Buscar documentos basándose en una coincidencia de igualdad en el valor de un campo anidado
Para buscar tiendas en las que el importe total de ventas es exactamente $37.015:
db.stores.find({ "sales.totalSales": { "$eq": 37015 } }, {"name": 1, "sales.totalSales": 1})
Esto devuelve los siguientes resultados:
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh",
"sales": { "totalSales": 37015 }
}
Ejemplo 3: Buscar documentos basados en una coincidencia de igualdad en cualquier elemento individual dentro de una matriz
Esta consulta busca una coincidencia de igualdad en cualquiera de los objetos de la matriz de descuentos anidada.
db.stores.find({"promotionEvents.discounts": { "$eq": {"categoryName": "Alarm Systems", "discountPercentage": 5}}}, {"name": 1}, {"limit": 2})
Esto devuelve los siguientes resultados:
[
{
"_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"
}
]
Ejemplo 4: Buscar documentos basados en una igualdad en toda la matriz
Esta consulta busca documentos en función de la coincidencia exacta en TODOS los valores de una matriz.
db.stores.find({"promotionEvents.discounts": { "$eq": [{"categoryName": "Alarm Systems", "discountPercentage": 5}, {"categoryName": "Door Locks", "discountPercentage": 12}]}}, {"name": 1})
Esto devuelve los siguientes resultados:
{
"_id": "aa9ad64c-29da-42f8-a1f0-30e03bf04a2d",
"name": "Boulder Innovations | Home Security Market - East Sheridanborough"
}
Nota:
Para una coincidencia de igualdad en una matriz completa, el orden de los valores especificados en los predicados de igualdad también debe ser una coincidencia exacta.