导出Mongodb图表

时间:2019-03-20 11:08:57

标签: mongodb charts

我成功安装了mongodb-charts,并且还能够创建仪表板。

现在,我想将此仪表板保存/导出为JSON(或任何其他格式)。是否有保存/导出和加载/导入Mongodb图表的功能?如果我要在其他服务器上使用相同的仪表板,这将很有用。 Example Dashboard

也没有用于mongodb-charts的标签。因此,任何具有标签创建特权的人都可以创建标签。

2 个答案:

答案 0 :(得分:1)

MongoDB图表仅处于beta版本。

它是为MongoDB Atlas设计的,根据official page "Share dashboards and collaborate",您可以通过添加新用户并为他们提供对仪表板视图“访问”按钮的权限来共享仪表板和图表。

在Access视图中,您可以通过选择“所有人”选项并选择权限权限或仅与特定用户共享来完全公开仪表板。

作为一种技巧,如果要将仪表板转换为JSON格式并从MongoDB Charts的一个实例转移到另一个实例,则可以尝试在连接到MongoDB Charts的MongoDB实例中尝试mongodump“元数据”数据库。

它有4个收藏集:

  • 仪表板
  • 数据源
  • 项目
  • 用户

但是所有关系都是通过GUID ID建立的,因此,无需手动编辑,您就可以在mongorestore期间轻松破坏数据。

更新: 以下bash脚本显示了如何导出仪表板和图表以将数据迁移到其他MongoDB图表实例:

# Your Dashboard and Chart names you want to export
dashboard_name="My Dashboard"
chart_name="My Chart"

# Exporting to `tmp` folder data from dashboard collection
mongodump --db metadata --collection dashboards --query "{"title": '$dashboard_name'}" --out "/tmp/"

dashboard_id=$(mongo --quiet --eval "db.getSiblingDB('metadata').dashboards.findOne({'title': '$dashboard_name'}, {'id': 1})['_id']")

# Exporting to `tmp` folder data from items collection
mongodump --db metadata --collection items --query "{\$and: [{'title': '$chart_name'}, {'dashboardId': '$dashboard_id'}]}" --out "/tmp/"

# After the following data is restored to different MongoDB Charts instance
# you need to make sure to modify the following records in imported data
# according to your datasource in new MongoDB Charts instance.

# for dashboards collection modify GUID for the following fields according to new datasource:
mongo --quiet --eval "db.getSiblingDB('metadata').dashboards.findOne({'title': '$dashboard_name'}, {'owners': 1, 'tenantId': 1, 'itemSummary.dataSourceId': 1})"

# for items collection modify GUID for the following fields according to new datasource:
mongo --quiet --eval "db.getSiblingDB('metadata').items.findOne({\$and: [{'title': '$chart_name'}, {'dashboardId': '$dashboard_id'}]}, {'dataSourceId': 1, 'tenantId': 1})"

请记住,这种方法不是官方的,并且有可能破坏您的数据。

答案 1 :(得分:0)

您可以使用charts for Trello,其工作方式与mongoDB图表相同。它使您可以连接到mongoDB数据库或任何其他系统,制作图表并将其导出为JSON,CSV ...