gpt4 book ai didi

Mongodb 聚合 $unwind 然后计数

转载 作者:可可西里 更新时间:2023-11-01 09:07:58 25 4
gpt4 key购买 nike

这是我的问题:在我的 Mongo 数据库中,我有一个包含以下项目的集合:

{
'id': 1,
'steps': [
{
action: 'start',
info: 'foo'
},
{
action: 'stop',
info: 'bar'
}
]
}

我想获得“开始”的总步数。我尝试使用 MongoDB 聚合框架:我使用 $unwindsteps.action$matchsteps.action匹配“开始”。

但是,我获得了太多数据并达到了聚合的限制: exception: aggregation result exceeds maximum document size (16MB) .我不需要数据,我只需要计数,但我找不到如何操作(尝试使用 $group 但没有成功)。

提前致谢

最佳答案

如果你想要计数你可以使用这个

db.test.count({"steps.action":"start"})

但如果步骤包含多个操作为 start 的步骤,则不会考虑。

当您还需要使用 start 计算所有步数时,您需要展开数组,在 steps.action 上进行匹配,然后将结果分组以进行计数。

db.test.aggregate([{$unwind:"$steps"}, {$match:{"steps.action":"start"}},{ $group: { _id: null, count: { $sum: 1 } } }])

关于Mongodb 聚合 $unwind 然后计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27313922/

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