Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:
MongoDB virtuális mag
Az $maxN
operátor egy tömb n legnagyobb értékét adja vissza. Ez akkor hasznos, ha numerikus értékek alapján szeretné megtalálni a legjobban teljesítő elemeket, például a legmagasabb értékesítési számokat vagy a legnagyobb kedvezmény százalékos arányát.
Szemantika
Az operátor szintaxisa a $objectToArray
következő:
{
$maxN: {
input: <array>,
n: <number>
}
}
Paraméterek
Leírás | |
---|---|
input |
Az a tömb, amelyből az n legnagyobb értéket adja vissza. A tömbnek numerikus értékeket kell tartalmaznia. |
n |
A legnagyobb visszaadandó értékek száma. Pozitív egész számnak kell lennie. |
példa
Tekintsük át az adathalmazból származó stores
JSON-minta használatát.
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
"sales": {
"totalSales": 151864,
"salesByCategory": [
{
"categoryName": "Sound Bars",
"totalSales": 2120
},
{
"categoryName": "Home Theater Projectors",
"totalSales": 45004
},
{
"categoryName": "Game Controllers",
"totalSales": 43522
},
{
"categoryName": "Remote Controls",
"totalSales": 28946
},
{
"categoryName": "VR Games",
"totalSales": 32272
}
]
},
"promotionEvents": [
{
"eventName": "Major Bargain Bash",
"discounts": [
{
"categoryName": "Sound Bars",
"discountPercentage": 9
},
{
"categoryName": "VR Games",
"discountPercentage": 7
},
{
"categoryName": "Xbox Games",
"discountPercentage": 25
},
{
"categoryName": "Projector Accessories",
"discountPercentage": 18
},
{
"categoryName": "Mobile Games",
"discountPercentage": 8
},
{
"categoryName": "Projector Cases",
"discountPercentage": 22
}
]
}
]
}
1. példa: Az első három értékesítési érték lekérése
Tegyük fel, hogy az összes értékesítési kategória első három értékesítési értékét szeretné megtalálni.
db.stores.aggregate([
{ $match: {"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74"} },
{
$project: {
name: 1,
topThreeSales: {
$maxN: {
input: "$sales.salesByCategory.totalSales",
n: 3
}
}
}
}
])
Ez a következő kimenetet eredményezi:
[
{
_id: '40d6f4d7-50cd-4929-9a07-0a7a133c2e74',
name: 'Proseware, Inc. | Home Entertainment Hub - East Linwoodbury',
topThreeSales: [ 45004, 43522, 32272 ]
}
]
2. példa: A legmagasabb kedvezmény százalékos arányának lekérése
Egy promóciós eseményből is $maxN
megtalálhatja a legmagasabb kedvezmény százalékos arányát.
db.stores.aggregate([
{ $match: {"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74"} },
{ $unwind: "$promotionEvents" },
{ $match: {"promotionEvents.eventName": "Major Bargain Bash"} },
{
$project: {
name: 1,
eventName: "$promotionEvents.eventName",
topTwoDiscounts: {
$maxN: {
input: "$promotionEvents.discounts.discountPercentage",
n: 2
}
}
}
}
])
Ez a következő kimenetet eredményezi:
[
{
_id: '40d6f4d7-50cd-4929-9a07-0a7a133c2e74',
name: 'Proseware, Inc. | Home Entertainment Hub - East Linwoodbury',
eventName: 'Major Bargain Bash',
topTwoDiscounts: [ 25, 22 ]
}
]
3. példa: A több üzletre kiterjedő legnépszerűbb értékesítések összehasonlítása
A különböző üzletek legnépszerűbb értékesítési értékeinek összehasonlítására használható $maxN
.
db.stores.aggregate([
{
$project: {
name: 1,
topTwoSales: {
$maxN: {
input: "$sales.salesByCategory.totalSales",
n: 2
}
}
}
},
{ $limit: 3 }
])
Ez a lekérdezés a gyűjtemény első három üzletének első két értékesítési értékét adja vissza, így könnyen összehasonlíthatja a különböző helyek teljesítményét.
[
{
_id: 'af9015d8-3f6b-455f-8967-a83cc22ff018',
name: 'VanArsdel, Ltd. | Party Goods Nook - Kunzeshire',
topTwoSales: [ 3526 ]
},
{
_id: 'ed319c06-731d-45fc-8a47-b05af8637cdf',
name: 'Relecloud | Computer Outlet - Langoshfort',
topTwoSales: [ 46356, 41111 ]
},
{
_id: '62438f5f-0c56-4a21-8c6c-6bfa479494ad',
name: 'First Up Consultants | Plumbing Supply Shoppe - New Ubaldofort',
topTwoSales: [ 36202, 32306 ]
}
]
Kapcsolódó tartalom
- A MongoDB-ről az Azure Cosmos DB for MongoDB-re (vCore) való migrálás lehetőségeinek áttekintése
- További információ a MongoDB-vel való funkciókompatibilitásról