Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mongodb集合中存储XML数据_Xml_Mongodb - Fatal编程技术网

在mongodb集合中存储XML数据

在mongodb集合中存储XML数据,xml,mongodb,Xml,Mongodb,我对像mongodb这样的NoSQL数据库还比较陌生,所以请原谅我的无知 背景: 现在,我有一个系统可以执行以下操作: 从客户端收集系统数据 将该信息输出到xml文档中 perl脚本获取xml标记中的数据并将其放入mySQL数据库中 apache/php支持的网站显示数据 此系统的目的是作为服务器/机箱/网络设备等的库存 这是一个不错的系统,但我决定使用非关系型数据库,因为我看到将其用于存储的数据类型的优势 问题: 使用mongodb从xml文档提取信息是否非常简单 我应该重写脚本以输出JSON

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

背景:

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

  • 从客户端收集系统数据
  • 将该信息输出到xml文档中
  • perl脚本获取xml标记中的数据并将其放入mySQL数据库中
  • apache/php支持的网站显示数据
  • 此系统的目的是作为服务器/机箱/网络设备等的库存

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

    问题:

  • 使用mongodb从xml文档提取信息是否非常简单
  • 我应该重写脚本以输出JSON/BSON文件而不是XML吗
  • 如何从文件中获取信息并将其放入mongodb数据库
  • MongoDB不支持xml文档。mongodb中的所有文档都以格式存储
  • 是的,你能做到
  • Mongodb可用于多种语言。使用它们

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

    mongodb中的所有文档都以bson格式存储。您可以将xml作为字符串值存储到数据库中。比如-
    {xml:“testxml”}

    在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());
            }
    
    List dbObjects=mongoTemplate.findAll(TestXML.class);
    for(TestXML键:dbObjects){
    System.out.println(key.getXmlValue());
    }
    
    那么,您认为在流程的早期更改几个步骤会更好吗?我也有点这样想,但我只是想问一下,因为这将是一项艰巨的任务。@Jeff我想说的是,尽管只需更改导入过程中的几个步骤即可将数据移动到mongodb,在不知道数据将如何使用的情况下,回答如何在mongodb中存储数据以支持您的用例并不是那么简单。@Jeff根据您更新的信息,我只能推断这主要是一个库存持有者,因此您可以安全地移动到mongodb,从而获得无模式优势。这是假的:)