「C#からMongoDBを使う」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(ページの作成:「NuGetに公式ドライバーがある。入れるだけでok。 MongoDB.Driver == データベースに接続する == <source lang="csharp"> var connectionString =...」)
 
imported>Administrator
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
NuGetに公式ドライバーがある。入れるだけでok。
+
[[NuGet]]に公式ドライバーがある。入れるだけでok。
  
 
MongoDB.Driver
 
MongoDB.Driver
11行目: 11行目:
  
 
== POCOを作っておく ==
 
== POCOを作っておく ==
ちなみにプロパティに「BsonIgnore」属性を利用すると[[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();