Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$Numéro du document
Nouveau depuis la version 8.0.2.
L'opérateur de $documentNumber fenêtre d'Amazon DocumentDB renvoie un numéro séquentiel distinct pour chaque document de sa partition, conformément à l'ordre des $setWindowFields étapessortBy. Contrairement à $rank et$denseRank, il ne traite pas spécialement les liens : chaque document reçoit un numéro unique (par exemple,1, 2, 3, 4), et les documents ayant des sortBy valeurs égales sont numérotés dans l'ordre dans lequel ils apparaissent. Il est spécifié dans le output champ de la $setWindowFields scène.
Il s'agit d'un opérateur de fenêtre qui n'est utilisé que dans la $setWindowFields scène.
Paramètres
-
$documentNumberprend un document vide{}comme valeur. -
Il n'accepte pas de
windowcadre. -
Cela nécessite exactement une
sortByclé dans l'$setWindowFieldsétape.
Exemple (MongoDB Shell)
L'exemple suivant partitionne les documents pargame, trie chaque partition par ordre décroissant et attribue score à chaque joueur un numéro de document séquentiel.
Créez des exemples de documents
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 } ]);
Exemple de requête
db.players.aggregate([ { $setWindowFields: { partitionBy: "$game", sortBy: { score: -1 }, output: { documentNumber: { $documentNumber: {} } } } } ]);
Sortie
[
{ "_id": 1, "game": "A", "player": "Alice", "score": 90, "documentNumber": 1 },
{ "_id": 2, "game": "A", "player": "Bob", "score": 85, "documentNumber": 2 },
{ "_id": 3, "game": "A", "player": "Carol", "score": 85, "documentNumber": 3 },
{ "_id": 4, "game": "A", "player": "Dave", "score": 70, "documentNumber": 4 },
{ "_id": 5, "game": "B", "player": "Erin", "score": 95, "documentNumber": 1 },
{ "_id": 6, "game": "B", "player": "Frank", "score": 80, "documentNumber": 2 }
]
Dans chaque game partition, chaque joueur reçoit un numéro séquentiel distinct dans l'scoreordre décroissant. Bob et Carol sont à égalité 85 mais sont toujours numérotés 2 et 3 dans l'ordre dans lequel ils ont été rencontrés.
Exemples de code
Pour afficher un exemple de code permettant d'utiliser l'$documentNumberopérateur dans la $setWindowFields scène, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :