「C#からMongoDBを使う」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
imported>Administrator |
||
11行目: | 11行目: | ||
== POCOを作っておく == | == POCOを作っておく == | ||
− | + | ObjectId型のIdプロパティはMongoDB側でUIDを格納するためのもの。またプロパティに「BsonIgnore」属性を利用すると[[POCO]]でなくても大丈夫だったりする。<source lang="csharp"> | |
− | <source lang="csharp"> | ||
class Data { | class Data { | ||
[BsonId] | [BsonId] |
2018年7月19日 (木) 04:41時点における最新版
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();