翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
$documentNumber
バージョン 8.0.2 の新機能。
Amazon DocumentDB の$documentNumberウィンドウ演算子は、$setWindowFieldsステージのsortBy順序に従って、パーティション内のドキュメントごとに個別のシーケンシャル番号を返します。$rank や とは異なり$denseRank、すべてのドキュメントは一意の番号 ( など1, 2, 3, 4) を受け取り、等しいsortBy値のドキュメントには発生した順序で番号が付けられます。$setWindowFields ステージの outputフィールドで指定します。
これは、$setWindowFieldsステージでのみ使用されるウィンドウ演算子です。
パラメータ
-
$documentNumberは空のドキュメントを値{}として受け取ります。 -
windowフレームは受け付けません。 -
$setWindowFieldsステージには 1 つのsortByキーのみが必要です。
例 (MongoDB シェル)
次の例では、ドキュメントを でパーティション化しgame、各パーティションscoreを降順にソートして、各プレイヤーにシーケンシャルドキュメント番号を割り当てます。
サンプルドキュメントを作成する
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 } ]);
クエリの例
db.players.aggregate([ { $setWindowFields: { partitionBy: "$game", sortBy: { score: -1 }, output: { documentNumber: { $documentNumber: {} } } } } ]);
出力
[
{ "_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 }
]
各gameパーティション内で、各プレイヤーは個別の連番を降score順に受け取ります。Bob と Carol は でタイします85が2、発生した順序3で番号が付けられます。
コードの例
$setWindowFields ステージで $documentNumber演算子を使用するコード例を表示するには、使用する言語のタブを選択します。