MongoDB C# Driver 使用示例 (2.2)

项目update到了mongoDB C# driver 2.2 , 发现从1.9到2.0的变化还是很大的,整合了一些常用的操作附加demo代码: class Program{const string CollectionName = "video";static void Main(string[] args){// remove the demo collection then recreate laterdb.GetCollection<Video>(CollectionName).Database.DropCollection(CollectionName);var videos = new List<Video>{new Video { Title="The Perfect Developer",Category="SciFi", Minutes=118 },new Video { Title="Lost In Frankfurt am Main",Category="Horror", Minutes=122 },new Video { Title="The Infinite Standup",Category="Horror", Minutes=341 }};Console.WriteLine("Insert Videos …");db.GetCollection<Video>(CollectionName).InsertMany(videos);Console.WriteLine("[After insert] All Videos : ");var all = db.GetCollection<Video>(CollectionName).Find(x=>x.Title != string.Empty).ToList();foreach (var v in all){Console.WriteLine(v);}Console.WriteLine("Group By…");var groupby = db.GetCollection<Video>(CollectionName).Aggregate().Group(x => x.Category, g => new {Name = g.Key, Count = g.Count(), TotalMinutes = g.Sum(x => x.Minutes)}).ToList();foreach (var v in groupby){Console.WriteLine(v.Name + "," + v.Count + "," + v.TotalMinutes);}Console.WriteLine("Updating One [Title = The Perfect Developer]…");// updating title with "The perfect developer" video’s ‘title’ and ‘minute’db.GetCollection<Video>(CollectionName).FindOneAndUpdate(x=>x.Title == "The Perfect Developer",Builders<Video>.Update.Set(x=> x.Title , "A Perfect Developer [updated]").AddToSet(x => x.Comments, "good video!").AddToSet(x => x.Comments, "not bad"));Console.WriteLine("[After Updating One] All Videos : ");all = db.GetCollection<Video>(CollectionName).Find(x => x.Title != string.Empty).ToList();foreach (var v in all){Console.WriteLine(v);}Console.WriteLine("Deleting One… [Minutes = 122]");db.GetCollection<Video>(CollectionName).DeleteOne(x => x.Minutes == 122);Console.WriteLine("[After Deleting One] All Videos : ");all = db.GetCollection<Video>(CollectionName).Find(x => x.Title != string.Empty).ToList();foreach (var v in all){Console.WriteLine(v);}Console.Read();}private static IMongoDatabase db{get{var url = new MongoUrl(ConfigurationSettings.AppSettings["mongoUrl"]);var client = new MongoClient(url);return client.GetDatabase(url.DatabaseName);}}}[BsonIgnoreExtraElements]public class Video{public Video(){Comments = new List<string>();}[BsonId][BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }public string Title { get; set; }public string Category { get; set; }public int Minutes { get; set; }public IList<string> Comments { get; set; }public override string ToString(){return string.Format("{0} – {1} – {2}", Title, Category, Minutes);}}对于mongoDB C# driver从1.9到2.0的更新,简化了数据库的连接方式,简化了Find,Update,Delete的接口,group by和projection操作也更流畅了。在Builders<T>中整合了 update, filter, projection, 和sort,功能的内聚性更强了,找function很方便。

缘是浪漫的相遇,瞬间让你我的心化为永恒!

MongoDB C# Driver 使用示例 (2.2)

相关文章:

你感兴趣的文章:

标签云: