一.概要
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()を参照してください。