Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR:
MongoDB vCore
Operatorn $nor
utför en logisk NOR-åtgärd på en matris med uttryck och väljer dokument som misslyckas med alla angivna uttryck.
Syntax
{ $nor: [ { <expression1> }, { <expression2> }, ... , { <expressionN> } ] }
Parameterar
Parameter | Typ | Beskrivning |
---|---|---|
expression |
Samling | En matris med uttryck, som alla måste vara falska för att ett dokument ska inkluderas |
Exempel
Exempel 1: Grundläggande NOR-åtgärd
Hitta butiker som varken har mer än 15 heltidsanställda eller mer än 20 deltidsanställda:
db.stores.find({
$nor: [
{ "staff.totalStaff.fullTime": { $gt: 15 } },
{ "staff.totalStaff.partTime": { $gt: 20 } }
]
})
Detta ger följande utdata:
{
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 }
]
}
Exempel 2: Komplex NOR-åtgärd
Hitta butiker som inte har något av dessa villkor: total försäljning över 100000, försäljning av "Digitala klockor" eller kampanjer i september 2024:
db.stores.find({
$nor: [
{ "sales.totalSales": { $gt: 100000 } },
{ "sales.salesByCategory.categoryName": "Digital Watches" },
{
"promotionEvents": {
$elemMatch: {
"promotionalDates.startDate.Month": 9,
"promotionalDates.startDate.Year": 2024
}
}
}
]
})
Detta ger följande utdata:
{
_id: 'binary-test',
name: 'Test Store',
logo: Binary(Buffer.from("627566666572", "hex"), 0),
signature: Binary(Buffer.from("74657374", "hex"), 0)
}
Exempel 3: NOR med flera fältvillkor
Hitta butiker som inte uppfyller något av dessa plats- och personalkriterier:
db.stores.find({
$nor: [
{ "location.lat": { $gt: 0 } },
{ "staff.totalStaff.fullTime": { $lt: 10 } },
{ "sales.totalSales": { $gt: 50000 } }
]
})
Detta ger följande utdata:
{
_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 }
]
}
]
}
Relaterat innehåll
- Granska alternativ för migrering från MongoDB till Azure Cosmos DB för MongoDB (virtuell kärna)
- Läs mer om funktionskompatibilitet med MongoDB