$arrayToObject (ペア配列をオブジェクトに変換)
最終更新:2026-10-09
$arrayToObject (ペア配列をオブジェクトに変換)
$arrayToObject はキーと値のペアの配列をドキュメントに戻します。$objectToArray の逆変換です。入力は { k, v } オブジェクトの配列か、[ 'フィールド名', value ] の 2 要素配列の配列の 2 つの形を受け付けます。代表的な用途は、$objectToArray で処理した後の動的フィールドの再組み立てや、グループ統計を 1 つのオブジェクトにまとめることです。キーは文字列でなければならず、重複キーは後ろの値で上書きされます。
| カテゴリ | 配列 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $arrayToObject: <array> }
⚙️ パラメータ
| 配列 | { k, v } オブジェクト、または2要素配列 [ 'fieldName', value ] の配列。 |
|---|
戻り値:結果のドキュメント。空の配列、または null を含む配列の場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $arrayToObject: k/v 配列をオブジェクトに戻す
db.users.aggregate([
{ $project: {
scoreObj: { $arrayToObject: '$scorePairs' }
} }
])
出力:
{ '_id': 1, 'scoreObj': { 'math': 90, 'eng': 85 } }
📌 注意事項
- キーは文字列でなければならない。重複キーは後ろの値で上書きされる
- 空配列または null を含む配列は null を返す
- { k, v } 形式と [ 'k', v ] 形式は等価で、混在も可能
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q2 つの入力形式は?
A{ k, v } オブジェクトの配列か、[ 'フィールド名', value ] ペアの配列です。
Qk が文字列でない場合は?
Aエラーになります — キーは文字列である必要があります。
Q重複キーはどう扱われますか?
A後ろの値が先の値を上書きします。