次のようなドキュメントがあります。ここでは、現在のトップ レベル ドキュメントのフィールドを結果配列のトップ レベル ドキュメント自体として返したいと考えています。
{
field1:{contents:{}}
field2:{othercontent:{}}
}
集計クエリの結果が次のように返されるようにしたい
{
contents:{}
}
これは $project と集計フレームワークで実行できますか?
次のようなドキュメントがあります。ここでは、現在のトップ レベル ドキュメントのフィールドを結果配列のトップ レベル ドキュメント自体として返したいと考えています。
{
field1:{contents:{}}
field2:{othercontent:{}}
}
集計クエリの結果が次のように返されるようにしたい
{
contents:{}
}
これは $project と集計フレームワークで実行できますか?
はい、使用でき$projectます。ドット表記contentsを使用して、ネストされたオブジェクトを取得するように指示するだけです。
db.items.aggregate( {$project: {contents:'$field1.contents'}} );
さらに、_id出力からフィールドを非表示にする場合_id: 0は、$projectパラメーターで次のように指定できます。
db.items.aggregate( {$project: {contents:'$field1.contents', _id:0}} );