我已进行搜索,但找不到问题的答案。 我在 MongoDB 中有一个具有以下示例结构的集合:
{
"_id": ObjectID(1),
"Manual_Tags": [
{
_source: {
tags: [ "tag1", "tag2", "tag3"]
other_values: ...
}
}
]
}
{
"_id": ObjectID(2),
"Manual_Tags": [
{
_source: {
tags: [ "tag2", "tag3", "tag4"]
other_values: ...
}
}
]
}
我需要知道所有文档集合中存在的每个“标签”值的实例数(Manual_Tags[]._source.tags[])。也就是说,对于上面示例中的 2 个文档,列表将为: 标签1:1 标签2:2 标签3:2 标签4:1
预先感谢您的帮助。
最佳答案
您需要查看aggregation查询。首先,您需要展开两个数组,然后对标签进行分组以获取计数
db.collection.aggregate(
{$unwind: '$Manual_Tags'},
{$unwind: '$Manual_Tags._source.tags'},
{$group: {_id: '$Manual_Tags._source.tags', count:{$sum:1}}}
)
关于arrays - MongoDB:将嵌套数组中的值分组以获取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445536/