2016-09-22 109 views
0

注意:我通過在PC上執行代碼添加了屏幕截圖。我已經看到了這個多次,但我無法解釋這至少對自己在MongoDB中,解決方法是什麼?

this MongoDB $unwind for nodejs11:10分鐘教程 - 喇叭說:

這個查詢:

 

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

問題是我們需要一個[公司,金額,年份]每個集合的單個文檔,其中數量和年份都只有一個標量值。正如講座中所解釋的,我們擁有的輸入具有數組,而$ unwind將這些輸入轉換爲單個值。

這個講座並沒有給出一個具體的問題,這個問題試圖解決,但讓我建議這樣做:「給我一份報告,顯示Greylock每年投入多少資金,然後給我一個每年的報告顯示出資公司的資金,按提供的金額訂購。「如果您考慮如何使用匯總框架生成這些數據,您可以看到這些報告將需要演講中所示的一組文檔。

相關問題