MongoDBデータ接続

  • 作成者:ayuan0625
  • 編集回数:36次
  • 最終更新:ayuan0625 于 2021-11-01
  • 一.概要

    1.応用シーン

    MongoDBは非常に人気のあるNoSQLデータベースとして、ますます広く利用されていますが、FineReport帳票のJDBCもJNDIも、データアクセスにMongoDBをご利用になれません。このプラグインをインストールすることによりMongoDBデータベースに接続できます。

    MongoDBの説明と使用方法については、MongoDBの公式ヘルプドキュメントを参照してください。

    2.機能説明

    · デザイナメニューバーのサーバー-データ接続の定義により、MongoDBタイプのデータ接続方法を追加します。

    · データ接続が定義された後、MongoDB明細データセットとMongoDB集約データセットがデータセット管理パネルに追加されます。

    注:現在、デザイナーでMongoDBデータ接続のみが定義できますが、ポータルへの接続はできません。

    二.操作手順

    1.データ接続を定義する

    プラグインをインストールしてから、デザイナーメニューバーのサーバー-データ接続の定義をクリックすることにより、MongoDBタイプのデータ接続を作成し、実際のシナリオに従ってデータベース接続情報を入力します。[接続のテスト]をクリックすると、接続成功ダイアログボックスがポップアップされます。[確定]をクリックして保存します。

    2.MongoDB明細データセットを追加する

    左下のデータセット管理パネルにMongoDB明細データセットを追加し、データベースクエリパネルを開いて、関連するクエリ情報を入力すると、MongoDBデータベーステーブルのデータをプレビューできます。

    次の例は、MongoDBで単純データ、配列データ、およびオブジェクトデータの3つのデータタイプを調べるする方法をそれぞれ説明します。

     

    1.単純データ

    MongoDBデータベースtestのsimple_typeテーブルを調べることを例として挙げられます。テーブルのデータが次の図に示されます。

     

    MongoDB明細データセットmongo1を作成し、下図に示すようにデータベースクエリ情報を入力します。

    注:単純データにはディメンションがないため、入力する必要はありません。クエリ条件、フィルター条件、および並べ替え条件を必要に応じて入力してください。

     

    データベースクエリパネルのプレビューボタンをクリックすると、下図のような結果になります:

    2.配列データ

    MongoDBはドキュメントデータベースであり、ドキュメント(doc)ごとに一つのデータ記録を表します。リレーショナルデータベースの行記録と比較すると、rowは単純データのみを使用でき、docは複雑な配列データを使用でき、docを配列に埋め込むことができます。

    MongoDBの配列は、一連の要素のコレクションであり、角括弧[]を使用して配列を示します。たとえば、[1,2,3]の中の要素は整数値であり、[{name:"t5"}、{name:"T7"}]、[{name:"t5", age:21}、{name:"t7", age:22}]の中の要素はdocです。

    MongoDBデータベースtestのテーブルshuzuxingを調べることを例として挙げられます。テーブルのデータが次の図に示されます。

     

    MongoDB明細データセットmongo2を作成し、クエリ情報を入力せず、当テーブルの全てのデータを直ちに調べられます。

     

    データベースクエリパネルのプレビューボタンをクリックすると、結果は次の図のようになります。

     

    3.オブジェクトデータ MongoDBデータベースtestのテーブルobject_typeを調べることを例として挙げられます。テーブルのデータが次の図に示されます。

     

    MongoDB明細データセットmongo3を作成し、クエリ情報を入力せず、当テーブルの全てのデータを直ちに調べます。

     

    データベースクエリパネルのプレビューボタンをクリックすると、結果は次の図のようになります。

     

    ディメンションに従ってデータを表示することもできます。下の図に示すようにディメンション情報を入力して、ディメンションに従ってデータをフィルタリングします。

     

    データベースクエリパネルのプレビューボタンをクリックすると、結果は次の図のようになります。

     

    3.MongoDB集合データセットを追加する

    1.左下のデータセット管理パネルにMongoDB明細データセットを追加し、データベースクエリパネルを開いて、関連するクエリ情報を入力すると、MongoDBデータベーステーブルのデータをプレビューできます。

    注:V9.0以降のバージョンのみが集合データセットに対応できます

    2.MongoDBデータベースtestのテーブルaggregateを調べることを例として挙げられます。テーブルのデータが次の図に示されます。

     

    MongoDB明細データセットmongo4を作成し、データベースクエリパネルから集合演算子を選択し、数値を入力します。

    注:ここでは、著者によってそれの書いた記事の数を計算したものです。

     

    データベースクエリパネルのプレビューボタンをクリックすると、結果は次の図のようになります。

     

    三.注意事項

    1.ISO標準時刻

    MongoDBの時刻をISO標準形式に変換する必要があります。2017-2-17以前の記録を調べると、下図のようになります。

     

    2.時刻確認におけるタイムゾーンの問題

    1.問題の説明

    MongoDBデータベーステーブルで時刻を調べるときに、デザイナーとshellツールのクエリ結果が一致しない場合があります。例えば、下図のSQL:

    デザイナで調べられた結果:

    shellツールで調べられた結果:

     

    2.考えられる原因

    ユーザーが時刻を入力するためのSQL: "REAL_SEND_DATETIME":ISODate("2019-08-31T12:50:11.000Z")、このSQLはISODate()関数を使用してGMT時刻を挿入し、デザイナで調べられたデータから転換されたローカル時刻に8時間を加算されます。これによりクエリ結果との相違を引き起こしました。

    3.解決策

    データ入力時にGMT時刻を使用していますが、デザイナで調べる時に'REAL_SEND_DATETIME': {$gt: ISODate('2019-01-01T00:00:00.000Z')}を使用することにより、正しい結果を得ることができますが、本マシンの時刻に変換されてから表示されます。

    注:MongoDBでの日付形式の使用については、公式ドキュメント:Date()を参照してください。


    Attachment List


    Theme: FineReport データ準備
    • いいね
    • 良くない
    • 閲覧しただけ