【问题标题】:Store XML Data in a mongodb collection将 XML 数据存储在 mongodb 集合中
【发布时间】:2015-10-26 17:39:45
【问题描述】:

我对 mongodb 等 NoSQL 数据库还比较陌生,所以请原谅我的无知。

背景:

现在,我有一个系统可以执行以下操作:

  1. 从客户端收集系统数据
  2. 将该信息输出到 xml 文档中
  3. perl 脚本获取 xml 标记中的数据并将其放入 mySQL 数据库中。
  4. 一个 apache/php 支持的网站显示数据。

该系统的目的是充当服务器/机箱/网络设备/等的库存。

这是一个不错的系统,但我决定使用非关系数据库,因为我看到将它用于我存储的数据类型的优势。

问题:

  1. 用mongodb从xml文档中提取信息是不是很简单?
  2. 是否应该重写必须输出 JSON/BSON 文件而不是 XML 的脚本?
  3. 如何从文件中获取信息并将其放入 mongodb 数据库中?

【问题讨论】:

    标签: xml mongodb


    【解决方案1】:

    当迁移到 NoSQL 文档数据库时,决策很大程度上受 客户/用户如何读取或使用数据的影响,因为数据大多是基于使用模式。因此,从技术上讲,您可以在“技术上”通过在导入数据时将数据转换为 json/bson 而不是 xml 来迁移到 mongodb。

    【讨论】:

    • 那么,您认为在流程的早期更改几个步骤会更好吗?我也是这么想的,但我只是想问一下,因为它会做一些事情。
    • @Jeff 我想说的是,虽然在导入过程中更改几个步骤将数据移动到 mongodb 一样简单,但要回答数据应该如何处理并不是那么简单存储在 mongodb 中以支持您的用例,而无需知道如何使用数据。
    • @Jeff 根据您更新的信息,我只能推断这主要是库存持有者,因此您可以安全地迁移到 mongodb 从而获得无模式优势。
    【解决方案2】:
    1. MongoDB 不支持 xml 文档。 mongodb 中的所有文档都以BSON 格式存储。
    2. 是的,您可以这样做。
    3. Mongodb drivers 可用于多种语言。使用它们。

    【讨论】:

      【解决方案3】:

      mongodb 中的所有文档都以 BSON 格式存储。您可以将 xml 作为字符串值存储到数据库中。喜欢-{xml : "<root><test>Test XML</test></root>"}

      【讨论】:

      • 这是假的 :)
      【解决方案4】:

      在java中你可以这样做-

      TestXML testXML = new TestXML();
              testXML.setXmlKey("test1" + new Date());
      
              BufferedReader br = new BufferedReader(new FileReader(new File(
                      "C:/xml/newxml.xml")));
              String line;
              StringBuilder sb = new StringBuilder();
      
              while ((line = br.readLine()) != null) {
                  sb.append(line.trim());
              }
      
              testXML.setXmlValue(sb.toString());
              mongoTemplate.save(testXML);
      

      您可以使用下面的 java 代码读取该 xml

      List<TestXML> dbObjects = mongoTemplate.findAll(TestXML.class);
              for(TestXML key : dbObjects){
                  System.out.println(key.getXmlValue());
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-01
        • 1970-01-01
        • 2020-10-04
        • 2020-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        相关资源
        最近更新 更多