我與這裏的所有相關細節斌:http://jsbin.com/ribor/1/edit?js,output流星MongoDB的數據支點和更優雅的代碼
但這麼回答緩解這裏的細節。我有這些模型的例子:
Orders = {
_id: "T487wBz7Pvzjo2QHh",
beverages: [
{
_id: "8ea26bb103efae385f80f881",
delivered: false,
name: "Wine",
units: "55"
}
],
location: "yTKWLFwSDvp3DyCkx",
locationName: "Ladies Garden",
locationNumber: "101",
timestamp: 1398393004864,
user_id: "W3Fdq36Ts2TdWxCRP",
username: "jgeezy"
};
Locations = {
_id: "yTKWLFwSDvp3DyCkx",
beverages: [
{
_id: "e5552a68266ed76895b8228a",
fillTo: "10",
name: "Wine Coolers",
orderWhen: "10",
startUnits: "10"
}
],
name: "Teen Cabana",
number: "103",
organization: "Super Happy Teens!",
vendor: false
};
我需要呈現在每個位置的表將顯示每個位置的未交付訂單飲料的總#某些行。我有這個功能已經寫:
Template.dashboardOrders.undeliveredOrders = ->
undeliveredOrders = Orders.find({'beverages.delivered': false}, {
transform: (order) ->
order.unfilledOrders = 0
_.each order.beverages, (bev) ->
if not bev.delivered
order.unfilledOrders += 1
order
})
但是,讓我通過,&時間戳排序的數組。我正在查找的輸出是按照唯一位置&時間戳排序的數組。不完全確定如何到達那裏,但我一直在嘗試不同的地圖,因爲我覺得這是要走的路,但我被卡住了。任何幫助深表感謝!
BONUS另外,由於必須返回訂單對象並使用+ =來遞增,我的方法感覺不夠好看。我覺得可能有更好的方法來做到這一點。
這是比較容易使用下劃線方法'groupBy'或'groupBy',這取決於你想要什麼,但我不太明白的問題。您希望按地點(即「countBy」)還是按位置和時間戳(即「groupBy」)排序的未送達飲料訂單總數?他們顯然將是兩件不同的事情。 – richsilv