Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O $eq operador é usado para corresponder documentos em que 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 ser comparado |
value |
O valor a ser comparado com |
Exemplos
Considere este documento de exemplo da coleção de documentos das 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 $eq filtro 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 a ID e os campos de 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 $eq filtro em um campo aninhado
Para encontrar uma loja com um total de vendas de exatamente US$ 37.015, execute uma consulta usando o operador $eq usando a notação de ponto no campo vendas.totalSales do campo aninhado.
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 usando predicados de igualdade em itens individuais dentro da matriz aninhada promotionEvents.discounts.
Essa consulta procura uma correspondência exata em um dos objetos dentro da matriz de descontos aninhada
db.stores.find({
"promotionEvents.discounts": {
$eq: {
categoryName: "Alarm Systems",
discountPercentage: 5
}
}
}, {
name: 1
}, {
limit: 2
})
Esta consulta retorna 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: Usar $eq para corresponder a toda a matriz
Essa 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
- Examine as opções de migração do MongoDB para o Azure DocumentDB.
- Leia mais sobre a compatibilidade de recursos com o MongoDB.