【问题标题】:MongoDB collection not listed in _schema_schema 中未列出 MongoDB 集合
【发布时间】:2014-12-15 20:30:28
【问题描述】:

我使用的是 MongoDB 2.6 标准。我已经成功地创建了多个集合、插入的数据、查询的数据等。在 Mongo shell 内部以及使用 MongoSkin 的 NodeJS 应用程序中都可以正常工作。到目前为止,一切都很好。现在我需要使用第三方工具(D2RQ)来访问数据。看来 D2RQ 使用 _schema 集合来获取集合名称、列名称、数据类型等。 D2RQ 适用于其中三个集合,因为这些集合位于 MongoDB 的 _schema 中。第四个集合不在 _schema 中,似乎是不可见的。但是,第四个集合存在于 MongoDB 中。该集合有数据。我可以在 Mongo shell 和 NodeJS 中使用 Mongoskin 查询集合。知道为什么集合没有出现在 _schema 中吗?这是 MongoDB 的错误吗?

【问题讨论】:

    标签: mongodb schema


    【解决方案1】:

    这不是 MongoDB 错误。问题的根本原因是D2RQ使用UnityJDBC驱动访问MongoDB。 JDBC连接字符串上有一个参数指示是否重建_schema。 D2RQ 在与 MongoDB 建立 JDBC 连接时未正确传递参数,导致 _schema 集合在第一次调用后的所有调用中都已过期。解决方案分为两部分:

    第一个部分是编写一个小型 NodeJS 应用程序,它除了强制 _schema 在连接上重建之外什么都不做。这解决了我眼前的问题。

    第二部分是将微型 NodeJS 应用程序扩展为功能齐全的导出过程,从 MongoDB 生成 RDF 文件。这允许我从解决方案堆栈中删除 D2RQ 和 UnityJDBC 驱动程序。

    “架构中最可靠的组件是不存在的组件”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-28
      • 2017-08-28
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      相关资源
      最近更新 更多