Mongodb是3.2.7版本
最近在學習mongodb數據庫在網上找到的都不是2.X版本以下的,因為驅動從2.X以後修改了很多,以前不支持linq現2.X也支持了,
Mongodb 啟動服務就不說了現在就來看看基本的操作
上代碼:
首先定義一個模型用來測試操作
public class Persion
{
//引用using MongoDB.Bson.Serialization.Attributes;
[BsonId]
public string _id;
public string Name;
public int age;
public string Email;
public string TableName
{
get{return "persion"; }
}
}
將mongob C#driver 添加到引用,引用方式可以通過Nuget添加 或者直接到官網去下載然後添加到項目中,

配置創建mongodbClient 注:【以前的版本是MongoServer】並做好配置
地址可以使用遠程的或者是本地的,現在是使用本地的
//數據庫連接字符串
static string conn = "mongodb://127.0.0.1:27017";
//數據庫名稱
static string database = "appdb";//數據庫名
static MongoUrl url = new MongoUrl(conn);
static MongoClient ci = new MongoClient(url);//創建mongoClient
static IMongoDatabase db = ci.GetDatabase(database);//獲取數據庫
以下就是數據的具體操作方法
//添加數據
public static void InsertUser(Persion per = null)
{
//鏈接到表,數據庫中存不存在表沒關系,不存在mongodb會自動創建一個Collection
//("persion")Collection也叫表
var colls = db.GetCollection<Persion>("persion");
per = new Persion { _id = Guid.NewGuid().ToString(), Name = "ynland@126.com", age = 12 };
colls.InsertOne(per);
}
//修改
public static void Updat()
{
//獲取數據
var colls = db.GetCollection<Persion>("persion");
var model = colls.Find(c => c.Name =="ynland" ).FirstOrDefault();//篩選數據
//條件。相當於where後面的 Filte.Eq 相當於等號 Filter.Eq("字段",匹配值)
var filter = MongoDB.Driver.Builders<Persion>.Filter.Eq("Name", model.Name);
//修改的值,set("字段","修改後值") 注意 字段要和數據庫中字段匹配,不匹配找不到會自動新建一個字段並賦值
var update = MongoDB.Driver.Builders<Persion>.Update.Set("age", "66");
// colls.UpdateOne(filter, update);//修改一條數據
UpdateResult res= colls.UpdateMany(filter, update);//多條修改
}
public static void DeleteInfo()
{
var colls = db.GetCollection<Persion>("persion");
colls.DeleteOne(c => c.age == 100);
}
//獲取數據
public static void GetAllInfo()
{
//數據類型要一致才能不序列化
var t = db.GetCollection<Persion>("persion").Find(c => c.Name!=string.Empty);
List<Persion> list = t.ToList();
}
在修改的時候篩選,和set方便地方

篩選的條件Filter.XXX("字段名",“陪配值”)這樣來篩選

在set的時候可以set().set().set().set().........這樣來賦值
全部代碼:
