Not
Å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.
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 | Description |
|---|---|
expression |
En matris med uttryck, som alla måste vara falska för att ett dokument ska inkluderas |
Examples
Överväg det här exempeldokumentet från butiksamlingen.
{
"_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
}
]
}
]
}
Exempel 1: Grundläggande NOR-åtgärd
Om du vill hitta butiker som varken har fler än 15 heltidsanställda eller mer än 20 deltidsanställda kör du en fråga med $nor-operatorn för båda villkoren. Projicera sedan bara namn- och personalfälten från butikerna i resultatuppsättningen.
db.stores.find({
$nor: [{
"staff.totalStaff.fullTime": {
$gt: 15
}
}, {
"staff.totalStaff.partTime": {
$gt: 20
}
}]
}, {
"name": 1,
"staff": 1
})
De första två resultaten som returneras av den här frågan är:
[
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"name": "Lakeshore Retail | Holiday Supply Hub - Marvinfort",
"staff": {
"totalStaff": {
"fullTime": 9,
"partTime": 18
}
}
},
{
"_id": "923d2228-6a28-4856-ac9d-77c39eaf1800",
"name": "Lakeshore Retail | Home Decor Hub - Franciscoton",
"staff": {
"totalStaff": {
"fullTime": 7,
"partTime": 6
}
}
}
]
Exempel 2: Komplex NOR-åtgärd
Om du vill hitta butiker utan försäljning över 100 000 USD, utan försäljning av "Digitala klockor", eller utan kampanjer i september 2024, kör du en fråga med operatorn $nor på alla tre villkoren. Slutligen projicerar du bara namn, försäljning och kampanjhändelser från butikerna i resultatuppsättningen.
db.stores.find({
$nor: [{
"sales.totalSales": {
$gt: 100000
}
}, {
"sales.salesByCategory.categoryName": "Digital Watches"
}, {
"promotionEvents": {
$elemMatch: {
"promotionalDates.startDate.Month": 9,
"promotionalDates.startDate.Year": 2024
}
}
}]
}, {
"name": 1,
"sales": 1,
"promotionEvents": 1
})
Ett av resultaten som returneras av den här frågan är:
[
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"name": "Lakeshore Retail | DJ Equipment Stop - Port Cecile",
"sales": {
"salesByCategory": [
{
"categoryName": "DJ Headphones",
"totalSales": 35921
}
],
"fullSales": 3700
},
"promotionEvents": [
{
"eventName": "Bargain Blitz Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 3,
"Day": 11
},
"endDate": {
"Year": 2024,
"Month": 2,
"Day": 18
}
},
"discounts": [
{
"categoryName": "DJ Turntables",
"discountPercentage": 18
},
{
"categoryName": "DJ Mixers",
"discountPercentage": 15
}
]
}
]
}
]
Relaterat innehåll
- Granska alternativen för att migrera från MongoDB till Azure DocumentDB.
- Läs mer om funktionskompatibilitet med MongoDB.