我对mongo聚合很新,而且我得到了一些相对无益的错误,而且我还没有找到任何明确的例子。简而言之,我有一个集合user_data
,文档的排列如下:
{
_id: ObjectID,
text: [#Documents],
username: "<string>",
metadata: {<fields>}
}
基本上,我希望计算此系列中存在的文档总数。这些文件都在文本字段下。我觉得非常接近合并$sum
和$size
选择器,这就是我现在所拥有的:
db.user_data.aggregate([{$sum: {$size: "$text"}}])
至少在正确的轨道上,但运行此我收到此错误消息:
command failed: {
"errmsg" : "exception: Unrecognized pipeline stage name: '$sum'",
"code" : 16436,
"ok" : 0
} : aggregate failed at src/mongo/shell/assert.js:13
非常感谢任何帮助。同样,对聚合非常新。
答案 0 :(得分:2)
您有正确的想法使用$sum
和$size
,但您需要将其放在$group
运算符中:
db.user_data.aggregate([
{$group: {
_id: null,
count: {$sum: {$size: "$text"}}
}}
])
_id: null
用于分组整个集合而不是特定字段。