Docs Menu
Docs Home
/ / /
Node.js ドライバー
/

接続オプションの指定

このセクションでは、 MongoClientOptionsインスタンス内で設定できるNode.jsドライバーでサポートされているMongoDB接続および認証オプションについて説明します。

接続文字列で接続オプションを直接設定する方法の詳細については、 MongoDB Serverマニュアルの「 接続文字列 」を参照してください。

名前
許容値
デフォルト値
説明

appName

string

null

接続ハンドシェイクの一環として、ドライバーがクライアントのメタデータでサーバーに渡すアプリ名を指定します。ドライバーは接続を確立するときに appName 値を MongoDB に送信します。この値は、ログファイル、スロークエリログ、プロファイル コレクションに記録されます。

authMechanism

string

null

サーバーへの接続に使用する認証メカニズムの方法を指定します。値を指定しない場合、ドライバーはサーバーのバージョンに応じてデフォルトのメカニズムである、SCRAM-SHA-1 または SCRAM-SHA-256 を使用します。使用可能な認証メカニズムについては、認証メカニズム セクションを参照してください。

authMechanismProperties

カンマで区切られたキーと値のペア(例: opt1:val1,opt2:val2)

null

GSSAPI のホスト名正規化を有効にするオプションなど、認証用に提供されるその他のオプションを指定します。

authSource

string

null

接続の認証対象となるデータベースを指定します。

autoSelectMongoDB

ブール値

true

true に設定されている場合、接続が確立されるまでソケットは IPv6 アドレスと IPv4 アドレスへの接続を試みます。 使用可能な場合、ドライバーは最初の IPv6 アドレスを選択します。

autoSelectMongoDB Atlas

non-negative integer

null

autoSelectFamily オプションを使用する場合に、次のアドレスを試行する前に接続試行の完了まで待機する時間をミリ秒単位で指定します。 10 未満の正の整数に設定されている場合は、代わりに値 10 が使用されます。

compressors

カンマ区切りの文字列リスト(例: snappy,zlib,zstd)

null

サーバーとの間で送受信されるワイヤプロトコルのメッセージに許可される圧縮の種類を指定します。詳細については、「ネットワーク圧縮」を参照してください。

connectTimeoutMS

non-negative integer

30000

エラーが発生する前に、サーバーへの単一の TCP ソケット接続を確立するための待機時間をミリ秒単位で指定します。 0 を指定すると、アプリケーションはソケットを確立するときに無限のソケット タイムアウトを設定します。

directConnection

ブール値

false

接続 URI で指定されたホストにすべての操作を強制的にディスパッチするかどうかを指定します。

enableUtf8Validation

ブール値

true

true を指定すると、接続の UTF-8 検証が有効になります。MongoDB は、無効な UTF-8 文字を含む文字列データを BSON に直列化する場合、エラーをスローします。これはドキュメント キーとドキュメント値の両方に当てはまるため、この検証により処理のオーバーヘッドが増加します。

false を指定すると、接続の UTF-8 検証が無効になります。MongoDB は、データに無効な UTF-8 データが含まれる場合でもエラーをスローしません。検証を無効にすると、アプリケーションは検証処理のオーバーヘッドを回避します。検証が無効になっているときにデータを編集すると、データが失われる可能性があります。UTF-8 検証を無効にすることは、データのクエリまたはエクスポートのみを行う場合の一時的な回避策です。

UTF-8 文字の詳細については、Wikipedia で UTF- を参照してください。8

heartbeatFrequencyMS

500 以上の整数

null

定期的なサーバーのモニタリング チェックの間隔をミリ秒単位で指定します。

loadBalanced

ブール値

null

ドライバーがロード バランサーに接続しているかどうかを指定します。

localThresholdMS

non-negative integer

15

適切なサーバー間で選択するためのラウンド トリップ時間のレイテンシ ウィンドウのサイズをミリ秒単位で指定します。0 を指定すると待機なしとなり、利用可能な最速のサーバーを意味します。

maxIdleTimeMS

non-negative integer

0

接続が閉じられる前にアイドル状態を維持できる時間をミリ秒単位で指定します。0 を指定すると、最小値がないことを意味します。

maxPoolSize

non-negative integer

100

ドライバーが接続プール内に作成できるクライアントまたは最大接続数を指定します。このカウント数には、使用中の接続が含まれています。

maxConnecting

non-negative integer

2

ドライバーの接続プールが同時に確立できる最大接続数を指定します。

maxStalenessSeconds

-1、または 90 以上の整数

null

セカンダリで発生してもサーバー選択の対象となる最大レプリケーションラグを、ウォール クロック時間で指定します。-1 を指定すると、最大値はありません。

minPoolSize

non-negative integer

0

操作が行われていない場合でも、ドライバーが接続プールに作成して維持する接続の数を指定します。このカウント数には、使用中の接続が含まれています。

proxyHost

string

null

SOCKS5 プロキシの IPv4 アドレス、IPv6 アドレス、またはドメイン名を指定します。

proxyPort

non-negative integer

null

SOCKS5 プロキシ サーバーの TCP ポート番号を指定します。proxyHost オプションを設定すると、このオプションの値はデフォルトで 1080 になります。

proxyUsername

string

null

SOCKS5 プロキシ サーバーへの認証に使用するユーザー名を指定します。このオプションを長さ 0 の文字列に設定すると、ドライバーはそれを無視します。

proxyPassword

string

null

SOCKS5 プロキシ サーバーへの認証用パスワードを指定します。このオプションを長さ 0 の文字列に設定すると、ドライバーはそれを無視します。

readConcernLevel

string

null

クライアントのデフォルトの読み取り保証 (read concern) を指定します。詳細については、「読み取り保証 (read concern)」を参照してください。

readPreference

string

"primary"

クライアントのデフォルトの読み込み設定 (read preference) を指定します(タグは除く)。詳細については、「読み込み設定 (read preference)」を参照してください。

readPreferenceTags

カンマで区切られたキー: 値のペア。たとえば、「dc:ny,rack:1」と「dc:ny」は複数回指定できます。このキーの各インスタンスは個別のタグセットです。

null

クライアントのデフォルトの読み込み設定 (read preference) タグを指定します。このオプションは、読み込み設定 (read preference) モードがプライマリでない場合にのみ有効です。

ドライバーは、URI 内のタグの順序を読み込み設定 (read preference) の順序として使用します。

replicaSet

string

null

接続先のレプリカセットの名前を指定します。

retryReads

ブール値

true

再試行可能な読み取りを有効にします。

retryWrites

ブール値

true

再試行可能な書き込みを有効にします。

serverMonitoringMode

auto, stream, poll

auto

ドライバー モニターが使用するモニタリング モードを指定します。このオプションを auto に設定すると、モニタリング モードはドライバーが実行されている環境によって決まります。ドライバーは、FaaS(function-as-a-service)環境ではポーリング モードを使用し、他の環境ではストリーミング モードを使用します。

serverSelectionTimeoutMS

non-negative integer

30000

エラーが発生する前にサーバー選択をブロックするタイムアウトをミリ秒単位で指定します。

socketTimeoutMS

non-negative integer

0

タイムアウトする前にソケットでの送信または受信の試行に費やされる時間をミリ秒単位で指定します。 0 を指定すると、アプリケーションはソケットを確立するときに無限のソケット タイムアウトを設定します。

srvMaxHosts

non-negative integer

0

シードリストを最初に設定するとき、または SRV ポーリング中にトポロジに新しいホストを追加するときにランダムに選択する SRV 結果の最大数を指定します。

srvServiceName

RFC6335 に準拠した有効な SRV サービス名

"mongodb"

最初の DNS シードリストの発見で SRV ルックアップに使用するサービス名を指定します。

ssl

ブール値

false

ssl は、tls オプションのエイリアスです。

tls

ブール値

false

サーバーへの接続に TLS が必要かどうかを指定します。"mongodb+srv"srvServiceName を使用するか、他の tls 接頭辞付きオプションを指定すると、tls の値は暗黙的に true に設定されます。

tlsAllowInvalidCertificates

ブール値

false

サーバーの TLS 証明書が無効な場合にドライバーがエラーを生成するかどうかを指定します。テスト目的のみでこのオプションを true に設定します。

tlsAllowInvalidHostnames

ブール値

false

サーバーのホスト名と TLS 証明書で指定されたホスト名が一致しない場合に、ドライバーがエラーを生成するかどうかを指定します。テスト目的のみでこのオプションを true に設定します。

tlsCAFile

string

null

TLS 接続を行う場合、1 つまたはまとまった証明書の承認があるファイルへのパスを指定します。このオプション設定の詳細については、TLS ガイドの「証明書ファイルパスの指定」セクションを参照してください。

tlsCertificateKeyFile

string

null

クライアント証明書ファイルまたはクライアント秘密キーファイルへのパスを指定します。両方が必要な場合は、ファイルを連結する必要があります。この接続オプション設定の詳細については、TLS ガイドの「証明書ファイルパスの指定」セクションを参照してください。

tlsCertificateKeyFilePassword

string

null

TLS 接続に使用するクライアント秘密キーを復号化するためのパスワードを指定します。

tlsInsecure

ブール値

false

無効な証明書やホスト名の不一致を許可するなど、TLS 制約を可能な限り緩和することを指定します。テスト目的のみでこのオプションを true に設定します。

waitQueueTimeoutMS

non-negative integer

0

タイムアウトになるまでにサーバーの接続プールから接続をチェックアウトするのに費やされる時間をミリ秒単位で指定します。

0 タイムアウトがないことを示します。

zlibCompressionLevel

-1 以上9 以下の整数

-1

zlib を使用してワイヤプロトコルのメッセージを圧縮するときの圧縮レベルを指定します。-1 はデフォルトのレベル、0 は圧縮なし、1 は最速の速度、9 は最適な圧縮を示します。詳細については、「ネットワーク圧縮」を参照してください。

設定
説明

connectTimeoutMS

connectTimeoutMS は、接続プールからの個々の接続がタイムアウトする前にMongoDB Serverへの TCP 接続を確立するための時間をミリ秒単位で設定する接続オプションです。MongoClient.connectがMongoDB Serverへの接続を確立するための許可時間を変更するには、代わりに serverSelectionTimeoutMS オプションを使用します。

デフォルト: 30000

socketTimeoutMS

socketTimeoutMS は、ドライバーが非アクティブなソケットを閉じる前に待機する時間を指定します。 デフォルト値では、ソケットをタイムアウトしない設定になっています。 このオプションはすでに接続されているソケットにのみ適用されます。

maxTimeMS

maxTimeMS は、サーバーが操作に到達した後、完了するまでサーバーが待機する最大時間を指定します。操作が指定された時間制限を超えて実行されると、タイムアウトのエラーが返されます。 maxTimeMSは個々の操作またはカーソルにのみ渡すことができます。

MongoClientのオプション設定を指定するには、次のようにコンストラクターのoptionsオブジェクトで 1 つ以上の利用可能な設定を宣言します。

const client = new MongoClient(uri, {
connectTimeoutMS: <integer value>,
socketTimeoutMS: <integer value>
});

利用可能なすべての設定を確認するには、「 MongoClientOptions 」を参照してください。 API ドキュメント。

maxTimeMS を指定するには、タイムアウト指定とともに maxTimeMS メソッドを Cursor を返す操作にタイムアウト指定してオプションとして渡します。

const Cursor = collection.distinct('my-key', { maxTimeMS: 50 });

予期しないネットワーク動作が発生した場合、またはMongoDBプロセスがエラーで失敗した場合、ドライバーが対応するソケットを正しく閉じたことを確認しないことがあります。

このような場合、ドライバーがソケットを正しく閉じることを確認するには、 socketTimeoutMSオプションを設定します。 MongoDB プロセスがタイムアウトすると、ドライバーはソケットを閉じます。 アプリケーションが実行する最も遅い操作の予想される期間よりも 2 倍から 3 倍の長さの値をsocketTimeoutMSに選択することをお勧めします。

タイムアウト値を指定することで、実行時間が長い操作によってサーバーが低速になるのを防ぐことができます。 maxTimeMS()メソッドをCursorを返す操作に連鎖させて、特定のアクションにタイムアウトを設定できます。

次の例えは、 maxTimeMS()メソッドをCursorを返す操作に連結する方法を示しています。

// Execute a find command
await collection
.find({ $where: "sleep(100) || true" })
.maxTimeMS(50);

keepAlive接続オプションは、TCP ソケットでトランザクション制御プロトコル(TCP)のキープアライブを有効にするかどうかを指定します。キープアライブを有効にすると、ドライバーはMongoDBデプロイに定期的に ping を送信し、接続がアクティブかどうかを確認します。この機能は、オペレーティング システムがSO_KEEPALIVE ソケット オプションをサポートしている場合にのみ機能します。

keepAliveInitialDelayオプションは、ドライバーがキープアライブを開始する前に待機するミリ秒数を指定します。

5.3 ドライバー バージョン リリースでは、これらのオプションは非推奨になりました。 ドライバーのバージョン 6.0 以降では、 keepAliveオプションは永続的にtrueに設定され、 keepAliveInitialDelayは 300000 ミリ秒(300 秒)に設定されています。

警告

ファイアウォールがキープアライブ メッセージを無視または削除すると、削除された接続を識別できない可能性があります。

インスタンス内で設定できる接続オプションの詳細については、MongoClientOptions APIドキュメントの「 MongoClientOptions 」を参照してください。

戻る

MongoClient の作成