7

私はまだmongodbのようなNoSQLデータベースに比較的慣れていないので、無知で申し訳ありません。

バックグラウンド:

現在、次のことを行うシステムがあります。

  1. クライアントからシステム データを収集します
  2. その情報を xml ドキュメントに出力します
  3. perl スクリプトは xml タグ内のデータを取得し、それを mySQL データベースに配置します。
  4. Apache/php を利用した Web サイトにデータが表示されます。

このシステムの目的は、サーバー/シャーシ/ネットワーク デバイスなどのインベントリとして機能することです。

これは問題のないシステムですが、保存しているデータの種類に非リレーショナル データベースを使用する利点があるため、非リレーショナル データベースを使用することにしました。

質問:

  1. mongodb を使用して xml ドキュメントから情報を抽出するのは非常に簡単ですか?
  2. XML の代わりに JSON/BSON ファイルを出力するために必要なスクリプトを書き直す必要がありますか?
  3. どのようにしてファイルから情報を取得し、それを mongodb データベースに入れますか?
4

4 に答える 4

6

NoSQL ドキュメント DB に移行する場合、データはほとんどの場合、使用パターンに基づいて事前に集約/事前結合されるため、クライアント/ユーザーによるデータの読み取り方法または使用方法によって決定が大きく左右されます。したがって、技術的には、データのインポート中にデータを xml ではなく json/bson に変換するだけで、「技術的に」mongodb に移行できます。

于 2013-05-17T15:52:40.213 に答える
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 に答える