gpt4 book ai didi

node.js - Mongodb 深度聚合

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:53 25 4
gpt4 key购买 nike

我有如下的方案。我正在使用nodejs mongodb官方驱动程序。我可以使用聚合管道框架对 someprop.subpop.title 进行分组吗?

我可以使用 MapReduce 来实现,但聚合比 Map/Reduce 快得多。我找不到任何在分组时深入对象的示例。

{
id_ : ObjectID("234bv123"),
username : "ugurozpinar",
someprop : {
subprop : [
{title:"Movies",count:5},
{title:"Sport",count:10}
]
}
},
{
id_ : ObjectID("234bv123"),
username : "otheruser",
someprop : {
subprop : [
{title:"Movies",count:9},
{title:"Theatre",count:8}
]
}
}

预期结果

[
{id_:"Movies",total:14},
{id_:"Theatre",total:8},
{id_:"Sport",total:10}
]

最佳答案

是的,您可以使用点表示法到达对象内部,并使用 $unwind$group 来按 title 获取总计数:

db.test.aggregate([
{$unwind: '$someprop.subprop'},
{$group: {
_id: '$someprop.subprop.title',
count: {$sum: '$someprop.subprop.count'}
}}
])

关于node.js - Mongodb 深度聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22592292/

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