gpt4 book ai didi

mongodb - 如何从 mongoDB aggregate() 查询返回多个结果?

转载 作者:可可西里 更新时间:2023-11-01 09:35:56 28 4
gpt4 key购买 nike

这是一个运行匹配的查询,然后返回特定字段中唯一条目的数量:

db.sequences.aggregate([{$match: {id: 5}}, {$group : {_id : "$field"} }, {$group: {_id:1, count: {$sum : 1 }}}])

但是,如果我想返回多个值,例如原始匹配聚合中所有文档的计数、原始匹配中的前 50 个文档,以及相同字段 2 的唯一条目数,该怎么办?匹配的文档集?

我能否编写 1 个返回所有这些值的聚合查询?

最佳答案

您需要执行两个单独的 $group 阶段。先通过filed字段$group,然后$push将结果文档存入数组,同时累加count 从每个文件中,得到总和。

db.sequences.aggregate(
[
{$match: {id: 5}},
{$group :
{
_id : "$field",
count: {$sum: 1}
}
},
{$group :
{
_id : null,
totalNumberOfMatches: {$sum: '$count'},
totalNumberOfUniqueMatches: {$sum: 1},
uniqueMatchesField:
{
$push:
{
field: '$_id',
count: '$count'
}
}
}
},
]
)

关于mongodb - 如何从 mongoDB aggregate() 查询返回多个结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30468842/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com