Overview
このページには、 Cドライバーを使用してさまざまな設定を指定してアプリケーションをMongoDBに接続する方法を示すコード例が含まれています。
Tip
接続オプション
このページの接続オプションの詳細については、各セクションに記載されているリンクを参照してください。
このページの接続例を使用するには、コード例をサンプルアプリケーションまたは独自のアプリケーションにコピーします。コード例にあるすべてのプレースホルダー( など)を、<hostname> MongoDBデプロイに関連する値に置き換えてください。
サンプル アプリケーション
次のサンプルアプリケーションを使用して、このページのコード例をテストできます。 サンプル アプリケーションを使用するには、次の手順を実行します。
Cドライバーがインストールされていることを確認します。
次のコードをコピーし、新しい
.cファイルに貼り付けます。このページからコード例をコピーし、 ファイル内の指定された行に貼り付けます。
1 2 3 4 int main(void) { 5 6 mongoc_uri_t* uri = NULL; 7 mongoc_client_t *client = NULL; 8 mongoc_database_t *database = NULL; 9 bson_t *ping = NULL, reply = BSON_INITIALIZER; 10 bson_error_t error; 11 12 mongoc_init(); 13 14 // Start example code here 15 16 // End example code here 17 18 if (!client) { 19 fprintf(stderr, "client initialization failure\n"); 20 goto cleanup; 21 } 22 23 database = mongoc_client_get_database(client, "admin"); 24 25 ping = BCON_NEW("ping", BCON_INT32(1)); 26 27 if (!mongoc_client_command_simple(client, "admin", ping, NULL, &reply, &error)) { 28 fprintf(stderr, "%s\n", error.message); 29 goto cleanup; 30 } 31 printf("Pinged your deployment. You successfully connected to MongoDB!\n"); 32 33 cleanup: 34 bson_destroy(&reply); 35 bson_destroy(ping); 36 mongoc_database_destroy(database); 37 mongoc_client_destroy(client); 38 mongoc_uri_destroy(uri); 39 mongoc_cleanup(); 40 }
接続
次のセクションでは、MongoDB のローカル インスタンスや Atlas のクラウドでホストされるインスタンスなど、さまざまなターゲットに接続する方法について説明します。
ローカル配置
次のコードは、 のローカルインスタンスに接続するための接続string MongoDBを示しています。
client = mongoc_client_new("mongodb://localhost:27017");
ローカル配置への接続の詳細については、 「接続ターゲットの選択」ガイドの「 ローカル配置 」を参照してください。
Atlas
次のコードは、 でホストされている配置に接続するための接続string Atlasを示しています。
client = mongoc_client_new("mongodb+srv://<db_username>:<db_password>@<hostname>/?<options>");
Atlas への接続の詳細については、 「接続ターゲットの選択」ガイドの Atlas を参照してください。
レプリカセット
次のコードは、レプリカセットに接続するための接続stringを示しています。
client = mongoc_client_new("mongodb+srv://<replica-set-member>/?replicaSet=<replica_set_name>");
レプリカセットへの接続の詳細については、 「接続ターゲットの選択」ガイドの「 レプリカセット 」を参照してください。
トランスポート層セキュリティ (TLS)
次のセクションでは、 TLSプロトコル を有効にしながらMongoDBに接続する方法について説明します。
Cドライバーで TLS を使用する方法の詳細については、「 トランスポート層セキュリティ (TLS) の構成 」を参照してください。
TLS の有効化
次のタブでは、接続で TLS を有効にする方法を示します。
client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?tls=true");
uri = mongoc_uri_new("mongodb://localhost:27017"); mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLS, true); client = mongoc_client_new_from_uri(uri);
TLS を有効にする方法の詳細については、TLS 構成ガイドの「 TLSを有効にする 」を参照してください。
ホスト名検証を無効化する
次のタブでは、TLS を使用して接続するときにホスト名検証を無効にする方法を示します。
client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?tls=true&tlsAllowInvalidHostnames=true");
uri = mongoc_uri_new("mongodb://localhost:27017"); mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLS, true); mongoc_uri_set_option_as_bool(uri, MONGOC_URI_TLSALLOWINVALIDHOSTNAMES, true); client = mongoc_client_new_from_uri(uri);
ネットワーク圧縮
次のセクションでは、ネットワーク圧縮アルゴリズムを指定しながら MongoDB に接続する方法について説明します。
圧縮アルゴリズム
次のタブは、MongoDB に接続するときに、利用可能なすべてのコンプレッサーを指定する方法を示しています。
client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=snappy,zlib,zstd");
uri = mongoc_uri_new("mongodb://localhost:27017"); mongoc_uri_set_compressors(uri, "snappy,zlib,zstd"); client = mongoc_client_new_from_uri(uri);
zlibCompressionLevel
次のタブは、 zlibコンプレッサーの圧縮レベルを指定する方法を示しています。
client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?compressors=zlib&zlibCompressionLevel=<zlib_compression_level");
uri = mongoc_uri_new("mongodb://localhost:27017"); mongoc_uri_set_option_as_int32(uri, MONGOC_URI_ZLIBCOMPRESSIONLEVEL, <zlib-compression-level>); client = mongoc_client_new_from_uri(uri);
サーバーの選択
次のコードは、サーバー選択関数を指定する接続stringを示しています。
client = mongoc_client_new("mongodb://<db_username>:<db_password>@<hostname>/?server_selector=<selector_function>");
サーバー選択をカスタマイズする方法の詳細については、データベースとコレクションガイドの「読み取り操作および書き込み (write)操作の構成」セクションを参照してください。
Stable API
次のコードは、 mongoc_client_tインスタンス内で Stable API 設定を指定する方法を示しています。
client = mongoc_client_new("mongodb+srv://<db_username>:<db_password>@<hostname>/?<options>"); // Set the version of the Stable API on the client mongoc_server_api_t *api = mongoc_server_api_new(MONGOC_SERVER_API_V1); mongoc_client_set_server_api(client, api, &error); // Do database work here mongoc_server_api_destroy(api);
Stable API の詳細については、「 Stable API 」を参照してください。