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

蒂姆

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

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

我有许多包含非常相同的单词的文档,我想汇总中的所有字段words给我像这样:

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

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

我读了这篇文章,MongoDB-使用嵌套字段对组合键进行分组,但是不幸的是,结构有所不同,它们的工作是对数组字段而不是嵌套字段进行分组。

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

米克尔

您可以尝试以下聚合:

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

要聚合您的字段,您需要使用$ objectToArray将对象分解为键/值对数组。然后我们只需要展开这样的数组就可以按k分组,即单个单词并将所有计数相加。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在mongodb中对布尔字段进行分组?

如何在mongodb的一个数组子字段中进行聚合和分组?

如何在 mongodb / mongoose 中对嵌套字段进行排序

如何在mongodb的聚合中将文档与特定字段分组

如何在Elasticsearch中将父字段值与嵌套对象中的聚合值进行比较?

如何在使用MongoTemplate进行分组的过程中对mongodb内部字段求和并进行推送

如何在 BigQuery 的左联接查询中按所有字段嵌套表进行分组?

MongoDB嵌套聚合分组

MongoDB聚合嵌套分组

Mongodb - 如何在生成的嵌入文档中对不同的字段进行分组

如何在MongoDB中的列表中嵌套字段中进行搜索

进行聚合时如何在Mongoose中动态设置字段?

如何对mongoDB进行分组并返回结果中的所有字段

如何按MongoDB中的特定字段对文档进行分组

如何在Mongodb聚合管道中包含其他字段?

如何在TypeORM中处理mongodb聚合字段

如何在Mongodb中聚合不同的数组字段

如何在mongoDB中按嵌套文档分组

如何在 mongoDB 中取消嵌套和分组集合

如何在MongoDB聚合中将与数组相同的字段和项目分组

Mongodb聚合和嵌套分组

如何在BigQuery中的重复字段上进行分组

如何在redshift中对GROUP BY和CONCATENATE字段进行分组

如何在MDX查询中对维度的字段进行分组?

如何在mongodb querybuilder中“分组”字段“计数”?

如何在Spring Data Mongo中的聚合投影字段中嵌套字段

在mongodb中与lookup的外部字段进行分组

如何在不改变对象的情况下按 MongoDB 中的特定字段对查询结果进行分组?

MongoDB 聚合框架分组并与数组中的嵌套文档合并