2016-09-22 2 views
0

注:自分のPCにコードを実行してスクリーンショットを追加しました。私は、この複数回を見てきましたが、私はthis MongoDB $unwind for nodejs11時10分のチュートリアルでは、少なくとも自分自身へアンワインドはmongodbで何をしていますか?

これを説明することができないんだ - スピーカーがいることを言う:

このクエリ:

 

db.companies.aggregate([ 
    { $match: {"funding_rounds.investments.financial_org.permalink": "greylock" } }, 
    { $project: { 
     _id: 0, 
     name: 1, 
     amount: "$funding_rounds.raised_amount", 
     year: "$funding_rounds.funded_year" 
    } } 
]) 
 

は、量と年の両方の配列を持つドキュメントを生成します。

documents that have arrays for both amount and year

我々は資金調達ラウンドアレイ内のすべての要素に対して発生量と資金を供給年にアクセスしているので。このを修正するには、我々はこの集約パイプラインで私たちのプロジェクトの段階の前に、アンワインドの段階が含まれる、と我々は資金調達ラウンド配列をunwindしたいと言って、これをパラメータ化することができます

 

db.companies.aggregate([ 
    { $match: {"funding_rounds.investments.financial_org.permalink": "greylock" } }, 
    { $unwind: "$funding_rounds" }, 
    { $project: { 
     _id: 0, 
     name: 1, 
     amount: "$funding_rounds.raised_amount", 
     year: "$funding_rounds.funded_year" 
    } } 
]) 
 

unwind has the effect of outputting to the next stage more documents than it receives as input

unwindは、入力として受け取るよりも多くの文書を次の段階に出力する効果があります。

私の混乱:

  • スピーカーは午前1時21分で参照している何が問題?
  • の修正は彼を参照していますか?

答えて

0

問題は、金額と年がそれぞれ1つのスカラー値である[会社、金額、年]の各セットごとに1つの文書が必要なことです。入力には配列があり、$ unwindはそれらを単一の値に変換します。

講義ではこれが解決しようとしている特定の問題はありませんが、グレイロックが毎年どれくらい資金を投入しているかを報告してください。提供された金額で注文された企業を毎年報告します。集約フレームワークを使用してそのデータを作成する方法について考えるならば、それらのレポートには講義に示されているような一連の文書が必要であることがわかります。

関連する問題