我对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
如有任何帮助,我们将不胜感激。同样,这对聚合来说是非常新鲜的。
使用$sum
和$size
的想法是正确的,但需要将其放入$group
运算符中:
db.user_data.aggregate([
{$group: {
_id: null,
count: {$sum: {$size: "$text"}}
}}
])
_id: null
用于对整个集合进行分组,而不是对特定字段进行分组。