# tMongoDBInputの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているtMongoDBInputを設定するために使われます。

標準のtMongoDBInputコンポーネントは、ビッグデータファミリーとデータベースNoSQLファミリーに属しています。

このフレームワークのコンポーネントは、すべてのビッグデータ対応のTalend製品およびTalend Data Fabricで利用できます。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Use existing connection] (既存の接続を使用) | 定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。 |
| [DB Version] (DBバージョン) | ドロップダウンリストで、使用したいデータベースのバージョンを選択します。<br><br>このフィールドは、[Use an existing connection] (既存の接続を使用)チェックボックスが選択されていない場合に利用できます。 |
| [Use connection string] (接続文字列を使用) | このオプションをオンにすると、MongoDB Atlas URIを使って接続を確立できます。右側のフィールドにURIを入力します。関連情報は、[接続文字列のURI形式](https://docs.mongodb.com/manual/reference/connection-string/)をご覧ください。<br><br>このオプションは、[DB Version] (DBバージョン)ドロップダウンリストからMongoDB 4.4.X and laterを選択する場合に利用できます。<br><br>情報メモ注: このオプションは、Talendが提供するR2021-12以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。 |
| [Use replica set address] (レプリカセットのアドレスの使用) | このチェックボックスをオンにすると、[Replica address] (レプリカアドレス)テーブルが表示されます。<br><br>[Replica address] (レプリカアドレス)テーブルでは、フェイルオーバー用に複数のMongoDBデータベースサーバーを定義できます。<br><br>このフィールドは、[Use an existing connection] (既存の接続を使用)チェックボックスが選択されていない場合に利用できます。 |
| [Server] (サーバー)と[Port] (ポート) | データベースサーバーのIPアドレスとリスニングポート番号を入力します。<br><br>これらのフィールドは、[Use existing connection] (既存の接続を使用)チェックボックスと[Use replica set address] (レプリカセットアドレスを使用)チェックボックスが選択されていない場合に利用できます。 |
| [Database] (データベース) | データベースの名前を入力します。 |
| [Use SSL connection (Configure the SSL authentication in tSetKeystore or in Studio preferences)] (SSL接続を使用(tSetKeystoreまたはStudio設定でSSL認証を構成)) | SSLまたはTLS暗号化接続を有効にする場合は、このチェックボックスをオンにします。<br><br>次に、同じジョブ内のtSetKeyStoreコンポーネントを使用して暗号化情報を指定する必要があります。<br><br>SSL接続はMongoDBのバージョン2.4 +でのみ利用可能です。 |
| [Set read preference] (読み取り環境設定の設定) | このチェックボックスをオンにして、[Read preference] (読み取り環境設定)ドロップダウンリストが表示されたら、読み取りオペレーションをダイレクトする必要のあるメンバーを選択します。<br><br>このチェックボックスをオフのままにすると、ジョブはデフォルトの読み取り環境設定を使用します。すなわち、レプリカセット内のプライマリーメンバーが使用されます。<br><br>詳細は、MongoDBのドキュメンテーションで複製とその読み取り環境設定に関する説明を参照してください。 |
| [Required authentication] (必要な認証) | このチェックボックスをオンにすると、データベース認証が有効になります。<br><br>Kerberosを使用していない場合は、[Authentication mechanism] (認証メカニズム)ドロップダウンリストにリスト表示されているメカニズムのうち、[NEGOTIATE]が推奨されます。使用しているMongoデータベースバージョンに最もよく対応している認証メカニズムが自動的に選択されるためです。<br><br>SCRAM-SHA-256認証メカニズムがMongoDB 4.x以降のみにサポートされているため、SCRAM-SHA-256 SASLオプションは[DB Version] (データベースバージョン)ドロップダウンリストから、MongoDB 4.4.X and laterが選択されている時のみ利用可能です。<br><br>情報メモ注: X509オプションは、Talendが提供するR2021-12以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。<br><br>このリスト内の他のメカニズムについては、MongoDBのドキュメンテーションで[MongoDB Authentication](https://docs.mongodb.org/manual/reference/parameters/#param.authenticationMechanisms)をご覧ください。 |
| [Set Authentication database] (認証データベースの設定) | MongoDBへの接続に使用するユーザー名がMongoDBの特定の認証データベース内で作成済みの場合は、このチェックボックスをオンにして、表示される[Authentication database] (認証データベース)フィールドに、この認証データベースの名前を入力します。<br><br>MongoDB認証データベースについては、[User Authentication database](https://docs.mongodb.org/manual/core/security-users/#user-authentication-database)をご覧ください。 |
| [Username] (ユーザー名)と[Password] (パスワード) | データベースユーザー認証データを入力します。<br><br>パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。<br><br>このフィールドは、[Required authentication] (必要な認証)チェックボックスが選択されている場合に利用できます。<br><br>[Authentication mechanism] (認証方式)ドロップダウンリストから、Kerberosをセキュリティシステムに選択した場合は、[Username] (ユーザー名)と[Password] (パスワード)のフィールドではなく、[User principal] (プリンシパルを使用)、[Realm] (レルム)、[KDC server] (KDCサーバー)のフィールドに入力します。 |
| [Collection] (コレクション) | MongoDBデータベースにコレクションの名前を入力します。 |
| [Schema] (スキーマ)と[Edit Schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。<br><br>スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。<br><br><ul> <li> <p> <span>[View schema] (スキーマを表示)</span>: スキーマのみを表示する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Change to built-in property] (組み込みのプロパティに変更)</span>: ローカルで変更を行うためにスキーマを<span>組み込み</span>に変更する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Update repository connection] (リポジトリー接続をアップデート)</span>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。</p> <p>変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul><br><br>データベースのカラムがJSONドキュメントで、ドキュメント全体を読み取る必要がある場合は、引用符を使用せずに[DB column] (DBカラム)内でアスタリスク(\*)を付けます。 |
| [Query] (クエリー) | クエリー条件を指定します。このフィールドは、[Query type] (クエリータイプ)ドロップダウンリストから[Find query] (クエリーを検索)を選択した場合のみ利用できます。<br><br>たとえば、[Collection] (コレクション)フィールドで指定したコレクションから*id*が*4*のレコードを取得するには、"{id:4}"と入力します。<br><br>情報メモ注:<br><br>MongoDBクライアントソフトウェアの必須クエリーステートメントとは異なり、このクエリーは{id:4}対MongoDBクライアントクエリーdb.blog.find({id:4})など、find()内のコンテンツを参照しています。 |
| [Specify fields to return] (返すフィールドを指定) | このチェックボックスをオンにすると、データベースから返されるドキュメントでフィールドのセットが定義されます。 |
| [Return only these fields] (これらのフィールドのみ返す) | このテーブルのデータから返されるフィールドの名前を入力します。<br><br>このフィールドは、[Basic settings] (基本設定)ビューで[Specify fields to return] (返すフィールドを指定)をオンにした場合のみ利用できます。 |
| [Aggregation stages] (集計ステージ) | ドキュメントが通過するステージを追加してMongoDB集計パイプラインを作成し、ドキュメントからの集計結果を取得します。このテーブルは、[Query type] (クエリータイプ)ドロップダウンリストから[Aggregation pipeline query] (集計パイプラインクエリー)を選択した場合のみ利用できます。<br><br>この[Aggregation stages] (集計ステージ)テーブルでは、1行につき1ステージのみが許可され、ステージはこのテーブルに配置した順序で1つずつ実行されます。MongoDB集計パイプラインの詳細は、[Aggregation pipeline](https://docs.mongodb.org/manual/core/aggregation-pipeline/)をご覧ください。<br><br>例1:<br><br><ul> <li> <div><em>$match</em>と<em>$group</em>のステージを使用して顧客に関するドキュメントを集計する場合、この<span>[Aggregation stages] (集計ステージ)</span>テーブルに2つの行を追加し、以下の2つのステージを定義します:<pre><code><pre><code><code>"{$match : {status : 'A'}}""{$group : {_id : '$cust_id', total : {$sum : '$amount'}}}"</code></code></pre></code></pre> </div> <p>この集計では、ステータス<kbd>A</kbd>の顧客ドキュメントが選択されます。その後、選択された顧客の中で同じ顧客IDでグルーピングされ、同じ顧客の<kbd>amount</kbd>フィールドの値が合計されます。</p> <p>使用できるステージと関連する演算子の完全なリストは、<a href="https://docs.mongodb.org/manual/reference/operator/aggregation/#aggregation-pipeline-operator-reference" target="_blank">Aggregation pipeline operators</a>をご覧ください。</p> </li> </ul><br><br>例2:<br><br><ul> <li> <div>このコンポーネントは<a href="https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-overview/" target="_blank">Atlas Vector Search</a>機能をサポートしています。このオプションを使用すると、$vectorSearch集計ステージおよび事前に<a href="https://help.qlik.com/talend/ja-JP/components/8.0/mongodb/tmongodbrow#tmongodbrow-standard-properties" target="_blank">tMongoDBRow</a>コンポーネントで作成されたベクター検索インデックスを使用してデータをクエリできます。<pre><code><pre><code><code>"{$vectorSearch : {index : '&lt;index_name&gt;', path : '&lt;field_to_search&gt;', queryVector:"[&lt;array_of_numbers&gt;], numCandidates: &lt;number_of_candidates&gt;, limit: &lt;number_of_results&gt;}}}" </code></code></pre></code></pre> </div>$vectorSearchクエリーパラメーターの詳細は、<a href="https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-stage/" target="_blank">該当するMongoDBのドキュメンテーション</a>をご覧ください。</li> </ul> |
| [Mapping] (マッピング) | このコンポーネント用に定義されたスキーマの各カラムは、読み取るドキュメントのフィールドを表します。このテーブルで、これらのフィールドの親ノードがあればそれを指定する必要があります。<br><br>たとえば、次のようなドキュメントがあるとします。<br><br>```<br>{<br>_id: ObjectId("5099803df3f4948bd2f98391"),<br>person: { first: "Joe", last: "Walker" }<br>}<br>```<br><br><br>フィールド*first*および*last*には親ノード*person*がありますが、*\_id*フィールドには親ノードがありません。したがって、完了すると、この[Mapping]テーブルは次のようになります。<br><br>```<br>Column     Parent node path<br>_id<br>first       "person"<br>last        "person"<br>``` |
| [Sort by] (ソート条件) | カラムを指定し、ソート操作の順序を選択します。<br><br>このフィールドは、[Query type] (クエリータイプ)ドロップダウンリストから[Find query] (クエリーを検索)を選択した場合のみ利用できます。 |
| [Limit] (制限事項) | 取得するレコードの最大数を入力します。<br><br>このフィールドは、[Query type] (クエリータイプ)ドロップダウンリストから[Find query] (クエリーを検索)を選択した場合のみ利用できます。 |
| [Skip] (スキップ) | 取得行のうち何行スキップするか指定します。ただし、1行目からはスキップされます。<br><br>情報メモ注: このオプションは、Talendが提供するR2022-01以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。 |
| [Batch size] (バッチサイズ) | 1つのバッチで取得できる最大行数を指定します。エラーが発生する可能性あるので、このオプションは1には設定しないでください。<br><br>情報メモ注: このオプションは、Talendが提供するR2022-01以降のTalend Studioマンスリーアップデートをインストール済みである場合のみ利用できます。詳細は管理者にお問い合わせください。 |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |
| [No query timeout] (クエリータイムアウトなし) | アイドルカーソルの非アクティブ状態が10分間続いた時にMongoDBサーバーがカーソルを停止することを防ぐには、このチェックボックスをオンにします。この状況では、このカーソルの結果が枯渇するか、またはcursor.close()方式を使用して手動で閉じるまで、アイドルカーソルが開いたままとなります。<br><br>MongoDBのカーソルはクエリーの結果セットを指すポインターです。デフォルトでは、すなわち、このチェックボックスがオフの場合、Mongoデータベースサーバーは、メモリの過剰使用を避けるために、非アクティブ状態が特定の期間続くと、アイドルカーソルを自動的に停止します。MongoDBカーソルの詳細は、https://docs.mongodb.org/manual/core/cursors/をご覧ください。 |
| [Convert BSON document to string] (BSONドキュメントを文字列に変換) | このチェックボックスをオンにして、BSONの値をすべて文字列に変換します。配列タイプの値は基本オブジェクトリストです。<br><br>このオプションは、Mongo DB 3.5.x、4.4.x以降のバージョンでのみ利用できます。 |

## [Global Variables] (グローバル変数)

| 変数 | 説明 |
| --- | --- |
| グローバル変数 | NB\_LINE: 入力コンポーネントによって読み取られた行の数、または出力コンポーネントに転送された行の数。これはAfter変数で、整数を返します。<br><br>ERROR\_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。<br><br>Flow変数はコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。<br><br>フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。<br><br>変数の詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | tMongoDBInputは、開始コンポーネントとしてMongoDBデータベースのコレクションからレコードを取得し、後続コンポーネントに転送して表示または保存します。 |