mongodb 数据库中所有列表的总长度
mongodb sum length of all lists in a database
我对 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
用于对整个集合而不是特定字段进行分组。
我对 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
用于对整个集合而不是特定字段进行分组。