Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
$DenseRank
Nuovo dalla versione 8.0.2.
L'operatore $denseRank window in Amazon DocumentDB restituisce la posizione di ogni documento all'interno della sua partizione, in base all'ordine delle $setWindowFields fasi. sortBy I documenti con lo stesso sortBy valore ricevono la stessa classificazione e il valore distinto successivo utilizza la posizione immediatamente successiva, senza lasciare spazi vuoti (ad esempio,). 1, 2, 2, 3 È specificato nel output campo dello $setWindowFields stage.
È un operatore di finestra che viene utilizzato solo nello $setWindowFields stage.
Parametri
-
$denseRankaccetta{}come valore un documento vuoto. -
Non accetta una
windowcornice. -
Richiede esattamente una
sortBychiave sul$setWindowFieldspalco.
Esempio (MongoDB Shell)
L'esempio seguente suddivide i documenti in basegame, ordina ogni partizione in ordine decrescente e score assegna a ciascun giocatore un rango denso.
Crea documenti di esempio
db.players.insertMany([ { _id: 1, game: "A", player: "Alice", score: 90 }, { _id: 2, game: "A", player: "Bob", score: 85 }, { _id: 3, game: "A", player: "Carol", score: 85 }, { _id: 4, game: "A", player: "Dave", score: 70 }, { _id: 5, game: "B", player: "Erin", score: 95 }, { _id: 6, game: "B", player: "Frank", score: 80 } ]);
Esempio di interrogazione
db.players.aggregate([ { $setWindowFields: { partitionBy: "$game", sortBy: { score: -1 }, output: { denseRank: { $denseRank: {} } } } } ]);
Output
[
{ "_id": 1, "game": "A", "player": "Alice", "score": 90, "denseRank": 1 },
{ "_id": 2, "game": "A", "player": "Bob", "score": 85, "denseRank": 2 },
{ "_id": 3, "game": "A", "player": "Carol", "score": 85, "denseRank": 2 },
{ "_id": 4, "game": "A", "player": "Dave", "score": 70, "denseRank": 3 },
{ "_id": 5, "game": "B", "player": "Erin", "score": 95, "denseRank": 1 },
{ "_id": 6, "game": "B", "player": "Frank", "score": 80, "denseRank": 2 }
]
All'interno di ogni game partizione, i giocatori sono classificati in ordine decrescentescore. Bob e Carol sono in parità 85 e condividono la classifica2, e Dave segue in classifica 3 senza alcun divario.
Esempi di codice
Per visualizzare un esempio di codice per l'utilizzo $denseRank dell'operatore nella $setWindowFields fase, scegli la scheda corrispondente alla lingua che desideri utilizzare: