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.
APLICA-SE A: MongoDB vCore
O $nor
operador executa uma operação NOR lógica em uma matriz de expressões e seleciona documentos que falham em todas as expressões especificadas.
Sintaxe
{ $nor: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
expression |
Matriz | Uma matriz de expressões, todas elas devem ser falsas para que um documento seja incluído |
Exemplos
Exemplo 1: operação NOR básica
Encontre lojas que não tenham mais de 15 funcionários em tempo integral nem mais de 20 funcionários de meio período:
db.stores.find({
$nor: [
{ "staff.totalStaff.fullTime": { $gt: 15 } },
{ "staff.totalStaff.partTime": { $gt: 20 } }
]
})
Isso produz a seguinte saída:
{
eventName: 'Steal the Show Sale',
promotionalDates: {
startDate: { Year: 2024, Month: 6, Day: 23 },
endDate: { Year: 2024, Month: 7, Day: 1 }
},
discounts: [
{ categoryName: 'Charms', discountPercentage: 10 },
{ categoryName: 'Bracelets', discountPercentage: 13 }
]
}
Exemplo 2: operação NOR complexa
Encontre lojas que não tenham nenhuma destas condições: vendas totais acima de 100000, vendas de "Relógios Digitais" ou promoções em setembro de 2024:
db.stores.find({
$nor: [
{ "sales.totalSales": { $gt: 100000 } },
{ "sales.salesByCategory.categoryName": "Digital Watches" },
{
"promotionEvents": {
$elemMatch: {
"promotionalDates.startDate.Month": 9,
"promotionalDates.startDate.Year": 2024
}
}
}
]
})
Isso produz a seguinte saída:
{
_id: 'binary-test',
name: 'Test Store',
logo: Binary(Buffer.from("627566666572", "hex"), 0),
signature: Binary(Buffer.from("74657374", "hex"), 0)
}
Exemplo 3: NOR com várias condições de campo
Encontre lojas que não atendam a nenhum destes critérios de localização e funcionários:
db.stores.find({
$nor: [
{ "location.lat": { $gt: 0 } },
{ "staff.totalStaff.fullTime": { $lt: 10 } },
{ "sales.totalSales": { $gt: 50000 } }
]
})
Isso produz a seguinte saída:
{
_id: 'db5051a8-17d1-4b01-aa2f-31e64623e5ac',
name: 'First Up Consultants | Watch Mart - Port Zack',
location: { lat: -62.6354, lon: 46.2917 },
staff: { totalStaff: { fullTime: 12, partTime: 9 } },
sales: {
totalSales: 6118,
salesByCategory: [ { categoryName: 'Digital Watches', totalSales: 6118 } ]
},
promotionEvents: [
{
eventName: 'Incredible Bargain Blitz',
promotionalDates: {
startDate: { Year: 2024, Month: 6, Day: 23 },
endDate: { Year: 2024, Month: 6, Day: 30 }
},
discounts: [
{
categoryName: 'Chronograph Watches',
discountPercentage: 13
},
{ categoryName: 'Diving Watches', discountPercentage: 21 }
]
},
{
eventName: 'Fantastic Deals Festival',
promotionalDates: {
startDate: { Year: 2024, Month: 9, Day: 21 },
endDate: { Year: 2024, Month: 9, Day: 29 }
},
discounts: [
{ categoryName: 'Digital Watches', discountPercentage: 25 },
{ categoryName: 'Pilot Watches', discountPercentage: 17 }
]
}
]
}
Conteúdo relacionado
- Examinar as opções de migração do MongoDB para o Azure Cosmos DB for MongoDB (vCore)
- Leia mais sobre Compatibilidade de recursos com o MongoDB