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