Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O $eq operador é usado para corresponder documentos onde o valor de um campo é igual a um valor especificado. O operador $eq filtra documentos com base em correspondências exatas em predicados de consulta para recuperar documentos com valores, objetos e matrizes específicos.
Sintaxe
{
field: {
$eq: <value>
}
}
Parâmetros
| Parâmetro | Description |
|---|---|
field |
O campo a comparar |
value |
O valor para comparação |
Examples
Considere este documento de exemplo da coleção de lojas.
{
"_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
}
]
}
]
}
Exemplo 1: Usar filtro $eq em um campo de nível raiz
Para encontrar uma loja com o nome "Boulder Innovations | Home Security Place - Ankundingburgh", execute uma consulta com o predicado $eq para corresponder no campo de nome e projetar apenas os campos ID e nome no resultado.
db.stores.find({
name: {
$eq: "Boulder Innovations | Home Security Place - Ankundingburgh"
}
}, {
name: 1
})
Essa consulta retorna o seguinte resultado:
[
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh"
}
]
Exemplo 2: Usar filtro $eq em um campo aninhado
Para encontrar uma loja com um total de vendas de exatamente US$ 37.015, execute uma consulta usando o operador de $eq usando a notação de ponto no campo aninhado sales.totalSales.
db.stores.find({
"sales.totalSales": {
$eq: 37015
}
}, {
name: 1,
"sales.totalSales": 1
})
Isso retorna o seguinte resultado:
[
{
"_id": "bda56164-954d-4f47-a230-ecf64b317b43",
"name": "Boulder Innovations | Home Security Place - Ankundingburgh",
"sales": { "totalSales": 37015 }
}
]
Exemplo 3: Usar $eq para itens individuais em uma matriz
A consulta a seguir recupera documentos com predicados de igualdade sobre elementos individuais dentro da matriz aninhada promotionEvents.discounts.
Esta consulta procura uma correspondência de igualdade em qualquer um dos objetos dentro da matriz de descontos aninhados
db.stores.find({
"promotionEvents.discounts": {
$eq: {
categoryName: "Alarm Systems",
discountPercentage: 5
}
}
}, {
name: 1
}, {
limit: 2
})
Esta consulta devolve os seguintes 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"
}
]
Exemplo 4: Use $eq para corresponder exatamente a todo o array
Esta consulta procura documentos com base na correspondência exata em TODOS os valores dentro da matriz promotionEvents.discounts.
db.stores.find({
"promotionEvents.discounts": {
$eq: [{
categoryName: "Alarm Systems",
discountPercentage: 5
}, {
categoryName: "Door Locks",
discountPercentage: 12
}]
}
}, {
name: 1
})
Essa consulta retorna o seguinte resultado:
[
{
"_id": "aa9ad64c-29da-42f8-a1f0-30e03bf04a2d",
"name": "Boulder Innovations | Home Security Market - East Sheridanborough"
}
]
Observação
Para uma correspondência de igualdade em uma matriz inteira, a ordem dos valores especificados nos predicados de igualdade também deve ser uma correspondência exata.
Conteúdo relacionado
- Revise as opções para migrar do MongoDB para o Azure DocumentDB.
- Leia mais sobre a compatibilidade de recursos com o MongoDB.