您好,欢迎访问一九零五行业门户网

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 later db.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操作也更流畅了。
在builders8742468051c85b06f0a0af9e3e506b5c中整合了 update, filter, projection, 和sort,功能的内聚性更强了,找function很方便。
以上就是mongodb c# driver 使用示例 (2.2)的内容。
其它类似信息

推荐信息