7

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

背景:

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

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

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

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

问题:

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

4 回答 4

6

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

于 2013-05-17T15:52:40.213 回答
5
  1. MongoDB 不支持 xml 文档。mongodb 中的所有文档都以BSON格式存储。
  2. 是的,你可以这么做。
  3. Mongodb驱动程序可用于多种语言。使用它们。
于 2013-05-17T13:51:04.120 回答
2

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

于 2015-10-26T09:35:21.853 回答
-1

在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());
        }
于 2015-10-26T09:39:45.753 回答