次のようなドキュメントがあります。ここでは、現在のトップ レベル ドキュメントのフィールドを結果配列のトップ レベル ドキュメント自体として返したいと考えています。
{
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}} );