$objectToArray (オブジェクトをキーと値のペア配列に変換)

最終更新:2026-10-09

$objectToArray (オブジェクトをキーと値のペア配列に変換)

$objectToArray はドキュメントをキーと値のペアの配列に変換します。各要素は { k: 'フィールド名', v: 'フィールド値' } の形になります。フィールド名が動的な場合(ユーザーごとのスコア次元など)に $map/$filter で全フィールドを一様に処理でき、サブドキュメントを集計前にフラット化するのにも便利です。引数はプレーンなドキュメントである必要があり、配列はエラーになります。$arrayToObject と組み合わせれば往復変換ができます。

カテゴリ配列
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $objectToArray: <object> }

⚙️ パラメータ

オブジェクト変換するドキュメント(BSON オブジェクト)式。

戻り値:キーと値のペア { k: 'fieldName', v: 'value' } の配列。引数が null の場合は null

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $objectToArray: スコアのサブドキュメントを配列に変換
db.users.aggregate([
  { $project: {
      scores: { $objectToArray: '$scores' }
  } }
])

出力:

{ '_id': 1, 'scores': [ { 'k': 'math', 'v': 90 }, { 'k': 'eng', 'v': 85 } ] }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q動的フィールド名を一様に処理するには?
A先に $objectToArray で変換し、$map/$filter で処理してから $arrayToObject で戻します。
Q配列を変換できますか?
Aいいえ — 引数はドキュメントである必要があり、配列はエラーになります。
Qフィールドの順序は保たれますか?
Aはい — 挿入順が維持されます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%