AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

.NET/ C#ドライバーを使い始める

.NET/ C#ドライバーは NuGetパッケージで、 MongoDBに接続して通信するために使用できます 。このガイドでは、 .NET/ C#ドライバー を使用してMongoDB AtlasでホストされているMongoDBクラスターに接続するアプリケーションを作成する方法について説明します。

Tip

MongoDB Atlas は、MongoDB 配置をホストする完全管理のクラウドデータベース サービスです。このガイドの手順に従い、独自の無料(クレジット カード不要)MongoDB Atlas 配置を作成できます。

このガイドに従って、サンプルC#アプリケーションをMongoDB Atlas配置に接続します。別のドライバーまたは プログラミング言語を使用してMongoDBに接続する場合は、公式ドライバーのリストを参照してください。

1

シェルで次のコマンドを実行して csharp-quickstart というディレクトリを作成し、新しい コンソールアプリケーションの.NETフレームワークプロジェクトを初期化します。

mkdir csharp-quickstart
cd csharp-quickstart
dotnet new console
2

次のコマンドを実行して、 .NET/ C#ドライバーの現在のバージョンをプロジェクトの依存関係 としてインストールします。

dotnet add package MongoDB.Driver

これらの手順を完了すると、新しい.NETフレームワークプロジェクトと.NET/ C#ドライバーがインストールされます。

MongoDB Atlas では無料階層の MongoDB 配置を作成して、データを保存および管理できます。 MongoDB Atlas は、MongoDB databaseをクラウドでホストおよび管理します。

1

MongoDB の使用開始ガイドを完了して、新しい Atlas アカウントを設定し、サンプルデータを新しい無料階層のMongoDB配置にロードします。

2

データベースユーザーを作成したら、そのユーザーのユーザー名とパスワードを安全な場所に保存して、後の手順で使用します。

これらの手順を完了すると、Atlas に新しい無料階層の MongoDB 配置、データベースユーザーの認証情報、データベースに サンプル データがロードされます 。

MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。

接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。

Tip

自己管理型(Atlas 以外)配置に接続するには、MongoClient の作成 を参照してください。

1

To retrieve your connection string for the deployment that you created in the previous step, log into your Atlas account and navigate to the Clusters page under the Database section. Click the Connect button for your new deployment.

Atlas UI のクラスター セクションの接続ボタン

データベースユーザーをまだ設定していない場合、 MongoDB は新しいユーザーを作成して設定するように要求します。

Connect to your application セクションの下の Drivers ボタンをクリックし、Driver 選択メニューと Version 選択メニューからインストールしたバージョンに最適化されたバージョンから [C# / .NET] を選択します。

接続文字列のみを表示するには、View full code sample オプションが選択されていないことを確認します。

2

次のスクリーンショットに示すように、接続stringの右側にある ボタンをクリックして、クリップボードにコピーします。

UI の接続 コピーstring ボタンAtlas
3

この接続文字列をテキストエディタのファイルに貼り付け、<db_password> プレースホルダーをデータベースユーザーのパスワードに置き換えます。接続文字列には、すでにデータベースユーザーのユーザー名が入力されています。

このファイルを安全な場所に保存して、次の手順で使用します。

4

シェルで次のコードを実行して、MongoDB接続文字列を環境変数に保存します。<your MongoDB URI> を、前の手順でファイルに保存した接続文字列に置き換えます。

export MONGODB_URI="<your MongoDB URI>"

注意

PowerShell

Microsoft PowerShell を使用している場合は、代わりに次のコマンドを実行します。

set MONGODB_URI="<your MongoDB URI>"

認証情報を環境変数に保存するのは、 ソースコードで認証情報をハードコーディングするよりも安全です。

これらの手順を完了すると、データベースのユーザー名とパスワードを含む接続stringが作成されます。

1

次のコードをコピーして、アプリケーション内の Program.csファイルに貼り付けます。ドキュメントのクエリに、BsonDocument または Plain Old CLR Object(POCO)を使用することを選択できます。各アプローチの例を表示するには、対応するタブを選択します。

using MongoDB.Bson;
using MongoDB.Bson.IO;
using MongoDB.Driver;
var connectionString = Environment.GetEnvironmentVariable("MONGODB_URI");
if (connectionString == null)
{
Console.WriteLine("You must set your 'MONGODB_URI' environment variable. To learn how to set it, see https://www.mongodb.com/ja-jp/docs/drivers/csharp/current/get-started/create-connection-string");
Environment.Exit(0);
}
var client = new MongoClient(connectionString);
var collection = client.GetDatabase("sample_mflix").GetCollection<BsonDocument>("movies");
var filter = Builders<BsonDocument>.Filter.Eq("title", "Back to the Future");
var document = collection.Find(filter).First();
Console.WriteLine(document.ToJson(new JsonWriterSettings { Indent = true }));
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
var connectionString = Environment.GetEnvironmentVariable("MONGODB_URI");
if (connectionString == null)
{
Console.WriteLine("You must set your 'MONGODB_URI' environment variable. To learn how to set it, see https://www.mongodb.com/ja-jp/docs/drivers/csharp/current/get-started/create-connection-string");
Environment.Exit(0);
}
var client = new MongoClient(connectionString);
var collection = client.GetDatabase("sample_mflix").GetCollection<Movie>("movies");
var filter = Builders<Movie>.Filter.Eq(m => m.Title, "Back to the Future");
var movie = collection.Find(filter).First();
Console.WriteLine($"Title: {movie.Title}");
Console.WriteLine($"Plot: {movie.Plot}");
Console.WriteLine($"Genres: {string.Join(", ", movie.Genres ?? [])}");
[BsonIgnoreExtraElements]
public class Movie
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("title")]
public string? Title { get; set; }
[BsonElement("plot")]
public string? Plot { get; set; }
[BsonElement("genres")]
public List<string>? Genres { get; set; }
}

Tip

.NET/ C#ドライバーで POCO を使用する方法の詳細については、POCOガイド を参照してください。

2

このアプリケーションを起動するには、shell で次のコマンドを実行します。

dotnet run csharp-quickstart.csproj

出力には、検索された 映画ドキュメントの詳細が含まれます。以下は、各アプローチの 出力を示しています。

{
_id: ...,
plot: 'A young man is accidentally sent 30 years into the past...',
genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ],
...
title: 'Back to the Future',
...
}
Title: Back to the Future
Plot: A young man is accidentally sent 30 years into the past...
Genres: Adventure, Comedy, Sci-Fi

Tip

エラーが発生した場合や出力が表示されない場合は、適切な接続文字列が指定され、サンプルデータがロードされていることを確認してください。

これらの手順を完了すると、ドライバーを使用して MongoDB 配置に接続し、サンプル データに対してクエリを実行し、結果を出力する動作するアプリケーションが作成されます。

チュートリアルを完了しました。

このチュートリアルでは、 MongoDB AtlasでホストされているMongoDBデプロイに接続し、クエリに一致するドキュメントを検索するC#アプリケーションを作成しました。

.NET/ C#ドライバーの詳細については、次のリソースを参照してください。

注意

このチュートリアルで問題が発生した場合は、 MongoDB Stack OverflowページまたはMongoDB Reddit Rate this pageコミュニティでサポートを依頼するか、このページの右側または右下にある タブを使用してフィードバックを送信してください。