鑑於下方顯示& MongoDB的外殼版本的架構:2.0.4:
我會如何的印象數組中的計數的項目數?
我想我必須做一個Map Reduce,這似乎有點複雜,我認爲Count函數會做到這一點。
有人可以證明這一點嗎?MongoDB的匯聚型數組項
回答
計數的一個簡單的例子是:
var count = 0;
db.engagement.find({company_name: "me"},{impressions:1}).forEach(
function (doc) {
count += doc.impressions.length;
}
)
print("Impressions: " + count);
如果你有大量的文件要處理,你會得到更好的維護算作一個明確的領域。您可以在推送到展示次數數組時更新計數,也可以根據需要使用incremental MapReduce重新計算更新的文檔。
我想推進這個,也許我想按日期範圍計數?我應該趕上時間鍵,並檢查它是否在範圍內,只有在範圍內才增加計數器? @stennie謝謝你。 – CAM
或者我應該打開另一個問題? – CAM
@CAM:如果您想更熟悉操作,可以考慮在MongoDB 2.2中使用新的[Aggregation Framework](http://docs.mongodb.org/manual/applications/aggregation/)。它有內置的運營商,例如[$ group](http://docs.mongodb.org/manual/reference/aggregation/group/#_S_group),它可以讓你做總和。可能更好,如果你可以用你想要實現「高級」查詢的完整例子來打開一個新問題。注意:如果你的時間字段是日期而不是字符串,這也會很有幫助。 – Stennie
- 1. MongoDB的匯聚$組queryquery
- 2. MongoDB的匯聚$組,然後$推對象
- 3. MongoDB的匯聚$組$和,$排序
- 4. MongoDB的匯聚$組和分類
- 5. MongoDB的:用MapReduce的/匯聚數數組值
- 6. MongoDB的貓鼬匯聚/數學運算
- 7. Django的組/匯聚
- 8. Mongodb聚合匹配數組項與子數組項目
- 9. 的MongoDB:匯聚 - 組狀態如果不爲空
- 10. MongoDB匯聚框架可用性
- 11. MongoDB:聚合$項目採取數組當前項目
- 12. MongoDB聚合:組合兩個數組
- 13. ElasticSearch:匯聚在嵌套數組
- 14. MongoDB的聚合框架來計算不同的數組項
- 15. MongoDB的聚合$項目
- 16. MongoDB聚集對象數組的對象?
- 17. 有兩種組MongoDB的聚集數
- 18. MongoDB的多維數組拼合聚集
- 19. 春數據的MongoDB組聚合對象
- 20. JSON數組上的Mongodb聚合(JAVA)
- 21. MongoDB的聚合項目檢查,如果數組包含
- 22. Mongodb中的聚合和組
- 23. MongoDB的聚集數
- 24. MongoDB彙總結果到嵌套數組
- 25. MongoDB聚合和項目總數結果
- 26. mongodb聚合嵌套嵌套數組
- 27. 匯聚了使用Spring數據和日期排序和MongoDB
- 28. 聚合MongoDB結果組合
- 29. mongodb聚合,組和排序
- 30. Mongoose,mongodb,壞聚合組合
'engage.impressions.length',但我很確定這不是你想要的,但基本上你在問什麼。 –
假設您想要一個映射'function(doc){return doc.impressions.length}'的函數,您最好的辦法就是擁有一個'count.impressions'屬性,您可以在更新印象的同時進行更新。 –
db.engagement.find({company_name:「me」},{impressions:1})。length()失敗 – CAM