C#からMongoDBを使う

提供: MonoBook
ナビゲーションに移動 検索に移動

NuGetに公式ドライバーがある。入れるだけでok。

MongoDB.Driver

データベースに接続する[編集 | ソースを編集]

var connectionString = "mongodb://127.0.0.1";
var client = new MongoClient(connectionString);
var db = client.GetDatabase("testdb");

POCOを作っておく[編集 | ソースを編集]

ObjectId型のIdプロパティはMongoDB側でUIDを格納するためのもの。またプロパティに「BsonIgnore」属性を利用するとPOCOでなくても大丈夫だったりする。

class Data {
    [BsonId]
    public ObjectId Id { get; set; }
    public string Name { get; set; }
    public DateTime? CreateAt {get; set; }
};

コレクションを取得する[編集 | ソースを編集]

コレクションってのはRDBでいうテーブルね。

var collection = DB.GetCollection<Data>("data");

コレクションにデータを格納してみる[編集 | ソースを編集]

ここはDapperでInsertするのと大して変わらないね。

var row = new Data {
    Name = "test",
    CreateAt = DateTime.Now,
};
collection.InsertOne(row);

コレクションからデータを検索してみる[編集 | ソースを編集]

なんとLINQで検索できる!こいつはスゲエ!

var x = collection.Find( x => Name == "Test" )
                  .SortByDescending(x => x.CreateAt)
                  .FirstOrDefault();