gpt4 book ai didi

python - 如何在 mongodb 聚合中对嵌套字段进行分组

转载 作者:可可西里 更新时间:2023-11-01 10:13:02 25 4
gpt4 key购买 nike

我的文档有点复杂,就像:

        {
'_id': 1,
'words':
{
'a':
{
'positions': [1,2,3],
'count':3,
},
'and':
{
'positions': [4, 5],
'count': 2,
}
}
}

我有很多包含相同单词的文档,我想聚合单词中的所有字段。给我这样的:

                {
'a': 5 #a's sum count

'and': 6 #and's sum count
}

我读了这篇文章,MongoDB - group composite key with nested fields , 但不幸的是,结构不同,它们所做的是对数组字段进行分组,而不是嵌套字段。

有什么建议吗?希望您的回答和帮助,在此先感谢。

最佳答案

您可以尝试以下聚合:

db.col.aggregate([
{
$project: {
wordsAsKeyValuePairs: {
$objectToArray: "$words"
}
}
},
{
$unwind: "$wordsAsKeyValuePairs"
},
{
$group: {
_id: "$wordsAsKeyValuePairs.k",
count: { $sum: "$wordsAsKeyValuePairs.v.count"}
}
}
])

要聚合您的字段,您需要使用 $objectToArray将对象分解为键值对数组。那么我们就是$unwinding这样的数组能够按单个单词 k 进行分组并对所有计数求和。

关于python - 如何在 mongodb 聚合中对嵌套字段进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48536066/

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