Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

3年前关闭。



Improve this question




我使用现有的MongoDB接管了一个项目。我想获取现有数据的可 View 像(图表等)。显然,与MySQL相比,MongoDB的情况大不相同,但是我想仍然可以看到一些东西吗?

最佳答案

这实际上取决于您对“可视化”的要求。通常,关系数据库图最有趣的视觉方面是高级关系和完整性约束(1:1、1:许多,主键,外键等)。

在给定集合中的文档不必遵循预定格式的意义上,MongoDB具有灵活的架构。这并不意味着基础数据就不能具有某种组织性……仅仅是对集合没有强加任何单一的模式(在传统的关系数据库中就是这种情况)。

在MongoDB中,要可视化许多有趣的细节,将需要通过检查集合中的部分或全部文档或通过检查代码来进行分析。

代码审查

如果您的应用程序使用的是诸如Mongoose(Node.js)或Morphia(Java)之类的ODM(对象文档映射器),则应用程序代码可以提供所需模式(或至少最新版本)的快速描述性 View 。模式)。适当的语言文档工具(例如jsdocjavadoc)可能有助于生成模型类的合理概述。您可能必须添加一些文档注释才能获得最佳效果。

模式分析

模式分析是一种更强力的方法,它涉及查看数据以推断观察到的模式。常用的方法是使用Map/Reduce

有几种不同的 mongo shell帮助器可以使您大致了解集合的结构(例如,字段/数据类型及其在源文档中的覆盖范围):

  • schema.js
  • variety

  • 这些不是可视的(在图形意义上),但是模式分析结果的确可以洞悉数据的预期形状和常见变化。

    人际关系

    MongoDB服务器不支持外键关系,这会删除许多可能有趣的视觉注释。

    有多种不同的客户端驱动程序创建Database References (DBRefs)的方法,但是这些遵循使用约定而不是服务器功能。为了使用DBRef确定集合之间的关系,必须扫描集合中的某些或所有文档。 varietyschema.js尚不支持关系推断。

    内容

    为了更好地了解实际内容,可以尝试使用Admin UIs之一。

    10-07 18:58
    查看更多