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.
El $eq operador se usa para buscar coincidencias con documentos en los que el valor de un campo es igual a un valor especificado. El operador $eq filtra los documentos en función de coincidencias exactas en predicados de consulta para recuperar documentos con valores, objetos y matrices específicos.
Syntax
{
field: {
$eq: <value>
}
}
Parámetros
| Parámetro | Description |
|---|---|
field |
Campo que se va a comparar |
value |
El valor con el que comparar |
Examples
Considere este documento de ejemplo de la colección de tiendas.
{
"_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: Usar $eq filtro en un campo de nivel raíz
Para encontrar una tienda con el nombre "Boulder Innovations | Lugar de seguridad principal: Ankundingburgh", ejecute una consulta con el predicado $eq para que coincida en el campo de nombre y proyecta solo los campos id. y nombre en el resultado.
db.stores.find({
name: {
$eq: "Boulder Innovations | Home Security Place - Ankundingburgh"
}
}, {
name: 1
})
Esta consulta devuelve el siguiente resultado:
[
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh"
}
]
Ejemplo 2: Usar $eq filtro en un campo anidado
Para buscar un almacén con un total de ventas exactamente de 37 015 USD, ejecute una consulta con el operador de $eq mediante la notación de puntos en el campo anidado sales.totalSales.
db.stores.find({
"sales.totalSales": {
$eq: 37015
}
}, {
name: 1,
"sales.totalSales": 1
})
Esto devuelve el siguiente resultado:
[
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh",
"sales": { "totalSales": 37015 }
}
]
Ejemplo 3: Uso de $eq para elementos individuales de una matriz
La consulta siguiente recupera documentos mediante predicados de igualdad en elementos individuales dentro de la matriz promotionEvents.discounts anidada.
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
})
Esta consulta 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: Usar $eq para que coincida con toda la matriz
Esta consulta busca documentos en función de la coincidencia exacta en TODOS los valores de la matriz promotionEvents.discounts.
db.stores.find({
"promotionEvents.discounts": {
$eq: [{
categoryName: "Alarm Systems",
discountPercentage: 5
}, {
categoryName: "Door Locks",
discountPercentage: 12
}]
}
}, {
name: 1
})
Esta consulta devuelve el siguiente resultado:
[
{
"_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.
Contenido relacionado
- Revise las opciones para migrar de MongoDB a Azure DocumentDB.
- Obtenga más información sobre la compatibilidad de características con MongoDB.