我搜索过但找不到问题的答案。 我在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个文档,列表将是: tag1:1 tag2:2 tag3:2 tag4:1
提前感谢您的帮助。
答案 0 :(得分:1)
您需要查看aggregation次查询。首先,您需要解开两个数组,然后只需对标记进行分组以获得计数
column.search(val).draw()
答案 1 :(得分:0)
使用投影和分组
db.mycollection.aggregate(
[
{
$project: {
_id:0,
tag_count:{$size:"$Manual_Tags._source.tags"},
}
},
{
$group: {
tag_total:{$sum:"$tag_count"},
}
}
]
)