$documents (リテラルドキュメント)
最終更新:2026-10-09
$documents (リテラルドキュメント)
$documents は、コレクションを読まずに、指定したリテラルドキュメントの配列をそのまま返します — パイプラインへのリテラル入力です。先頭ステージでなければならず、テストデータの用意や定数に対する式の実行に便利です。各ドキュメントは変更されずにそのまま通ります。
| カテゴリ | コアステージ |
|---|---|
| MongoDB バージョン | 5.2+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $documents: [ { <doc1> }, { <doc2> }, ... ] }
⚙️ パラメータ
| ドキュメント配列 | 出力するリテラルドキュメントのリスト。 |
|---|
戻り値:リテラルのドキュメントストリーム
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $documents: リテラルデータで式を検証
db.aggregate([
{ $documents: [{ x: 1 }, { x: 2 }] },
{ $addFields: { y: { $add: ['$x', 1] } } }
])
出力:
{ "x": 1, "y": 2 }
{ "x": 2, "y": 3 }
📌 注意事項
- パイプラインの先頭ステージでなければならない
- コレクションのデータは読まない — 純粋にリテラル入力
- 式のテストや参照データの作成に最適
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$documents はパイプライン途中に置けますか?
Aいいえ。先頭でなければならず、他のステージはその後ろに置きます。
Q$documents は何のために使いますか?
Amongosh で実コレクションなしにテストデータを作り、集計式を検証するためです。
Qdb.aggregate と db.coll.aggregate の違いは?
Adb.aggregate はコレクションなしで実行し、先頭ステージは $documents や $currentOp のような特殊なものに限られます。