1

鉴于下面显示的架构和 MongoDB shell 版本:2.0.4:

我将如何计算印象数数组中的项目数?

我在想我必须做一个 Map Reduce,这似乎有点复杂,我认为 count 函数会做到这一点。
有人可以证明这一点吗?

Mongo 架构

4

1 回答 1

1

一个简单的计数示例是:

var count = 0;
db.engagement.find({company_name: "me"},{impressions:1}).forEach(
    function (doc) {
        count += doc.impressions.length;
    }
)
print("Impressions: " + count);

如果要处理大量文档,最好将计数保持为显式字段。您可以在推送到印象数数组时更新计数,或者根据需要使用增量 MapReduce重新计数更新的文档。

于 2012-09-30T23:56:27.203 回答