28

次のようなドキュメントがあります。ここでは、現在のトップ レベル ドキュメントのフィールドを結果配列のトップ レベル ドキュメント自体として返したいと考えています。

{ 
  field1:{contents:{}}
  field2:{othercontent:{}}
}

集計クエリの結果が次のように返されるようにしたい

{
  contents:{}
}

これは $project と集計フレームワークで実行できますか?

4

2 に答える 2

33

はい、使用でき$projectます。ドット表記contentsを使用して、ネストされたオブジェクトを取得するように指示するだけです。

db.items.aggregate( {$project: {contents:'$field1.contents'}} );

さらに、_id出力からフィールドを非表示にする場合_id: 0は、$projectパラメーターで次のように指定できます。

db.items.aggregate( {$project: {contents:'$field1.contents', _id:0}} );
于 2013-10-17T19:16:02.157 に答える