2013-05-17 4 views
4

Я по-прежнему относительно новичок в базах данных NoSQL, таких как mongodb, поэтому извините мое невежество.Хранить XML-данные в коллекции mongodb

фона:

Прямо сейчас, у меня есть система, которая делает следующее:

  1. собирает системные данные от клиентов
  2. выходов, что информация в XML-документ
  3. Perl- скрипт берет данные в тегах xml и помещает их в db mySQL.
  4. Сайт, основанный на apache/php, отображает данные.

Целью этой системы является инвентарь для серверов/шасси/сетевых устройств/и т. Д.

Это была хорошая система, но я решил перейти в нереляционную базу данных из-за преимуществ, которые я вижу в использовании этого типа данных, которые я храню.

Вопрос:

  1. Это очень просто для извлечения информации из XML-документов с MongoDB?
  2. Должен ли я переписать сценарии, я должен вывести файл JSON/BSON вместо XML?
  3. Как вы берете информацию из файлов и помещаете ее в базу данных mongodb?

ответ

3

При перемещении к документу NoSQL БД, решение во многом зависит от , как данные считываются или используемые клиентом/пользователем в качестве данных в основном предварительно агрегируются/предварительно присоединился на основе использования узоры. Итак, технически вы можете перейти к mongodb «технически», просто преобразовывая данные в json/bson вместо xml при импорте данных.

+0

Итак, вы думаете, что было бы лучше просто изменить некоторые шаги ранее в процессах? Я тоже подумал об этом, но я просто хотел спросить, так как это будет что-то делать. – Jeff

+0

@Jeff То, что я пытаюсь сделать, состоит в том, что хотя это и просто изменить несколько шагов процесса импорта, чтобы переместить данные в mongodb, не так просто ответить, как данные должны храниться в mongodb для поддержки вашего но не зная, как будут использоваться данные. –

+0

О, я отредактировал, чтобы это отразить. – Jeff

2
  1. MongoDB не поддерживает документ xml. Все документы в mongodb хранятся в формате BSON.
  2. Да, вы можете это сделать.
  3. Mongodb drivers доступны для многих языков. Используй их.
1

Все документы в mongodb хранятся в формате BSON. Вы можете сохранить xml в качестве значения String в базе данных. как - {xml : "<root><test>Test XML</test></root>"}

0

В 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); 

вы можете прочитать, что XML, используя ниже код Java

List<TestXML> dbObjects = mongoTemplate.findAll(TestXML.class); 
     for(TestXML key : dbObjects){ 
      System.out.println(key.getXmlValue()); 
     } 
Смежные вопросы