C#からMongoDBに接続する

Webと連携するようなアプリケーションでは、データをJSONで受け取る場合がある。受け取ったデータをアプリケーション側で永続化する場合にデータベースを使いたいが、SQL系のデータベースではいまいちJSONとの親和性が低い気がする。

ということで、MongoDBを試してみることにした。一つ残念なのはアプリケーション組み込み型ではないことだが、mongod.exeをアプリケーションからうまく扱えばユーザサイドでは意識させないようにできるのではと考え、特にデメリットと考えないようにした。

今回使用したのはMongoDB 2.4.0、OSはWindows XP 32bitなので、データベースのサイズには2GBの制限がついたり、ジャーナル機能がデフォルトでオフになっていたりするとのことだが、テストなので気にしない。

データベース接続用のドライバは、公式のC#用のものをNuGet経由でインストールした。

早速Webにあるサンプルを試してみたところ、サーバの取得方法に対して非推奨との注意文が入る。

動作はしたが、以下のコードはMongoDB 2.4では使ってはいけないようだ。

var connectionString = @"mongodb://localhost";
var server = MongoDB.Driver.MongoServer.Create(connectionString);

注意文を手がかりに、コードを以下のように書き直してみた。

var connectionString = @"mongodb://localhost";
var client = new MongoDB.Driver.MongoClient(connectionString);
var server = client.GetServer();

これで注意文は消え、データベースに正常に接続できることを確認した。

簡単にコレクションに対してデータを挿入する処理を書いてみたが、.NETのオブジェクトをそのままデータベースに渡すことができるのが非常に楽。もう少しサンプルをいじってみて、使用感を確かめていこうと思う。