Ale*_*opa 6 metabase mongodb mongodb-query aggregation-framework
我需要从 mongodb 中存在的单个文档创建一些图。我只能使用 mongodb 聚合框架(所以例如我不能将文档拉入 python 并在那里使用它)。我正在使用元数据库的查询生成器,因此我在这方面受到限制。
为了做到这一点,我首先使用一些$match查询来识别我需要查看的文档(这些文档是预定义的和静态的)。该$match阶段结束后,我留下了一份具有以下结构的文档(这没问题)。
{
"id": 1,
"locs": {
"a":1,
"b":2,
"c":3
}
}
Run Code Online (Sandbox Code Playgroud)
我需要将此结构更改为如下所示:
[{"a":1}, {"b":2}, {"c":3"}]
或任何其他允许我从结构中创建饼图的形式。
谢谢!
您可以locs使用将对象转换为数组$objectToArray。现在将$unwind数组locs拆分为多个文档。$group与累加器配合使用,$push将分割后的数据再次k格式化v。最后$replaceRoot与最终data字段一起使用将其移动到$$ROOT位置。
db.collection.aggregate([
{ "$project": { "data": { "$objectToArray": "$locs" }}},
{ "$unwind": "$data" },
{ "$group": {
"_id": "$data",
"data": { "$push": { "k": "$data.k", "v": "$data.v" }}
}},
{ "$project": {
"data": { "$arrayToObject": "$data" }
}},
{ "$replaceRoot": { "newRoot": "$data" }}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4385 次 |
| 最近记录: |