MongoDB(三)

来源:互联网 发布:淘宝购物车源代码 编辑:程序博客网 时间:2024/06/02 07:41
MongoDB(三) .net开发入门驱动实践

一.MongoDB for .net 驱动选择

     第一款:官方驱动:https://github.com/samus/mongodb-csharp  应用广泛,更新速度比较快,也加入了对linq的支持

     第二款:https://github.com/samus/mongodb-csharp/downloads   提供了丰富的linq操作,相当方便

     第三款:NoRM 项目地址:http://github.com/atheken/NoRM  加入了对强类型的支持,是对一的补充

     第四款:simple-mongodb 项目地址:http://code.google.com/p/simple-mongodb   以JSON为核心

     驱动很多不一一罗列,在本章我们使用第二款。

二:实践

1.新建console项目,首先引用我们下载的启动

2.新建MainClass,其中代码如下:

public class  MainClass    {       private IMongoCollection<Document> categories;       private Mongo mongo;       private IMongoDatabase simple;       public void Setup()       {           //从配置文件读取链接字符串 IP+端口            var connstr=System.Configuration.ConfigurationSettings.AppSettings["ConnectionStringName"];           if(string.IsNullOrEmpty(connstr))               throw new ArgumentNullException("Connection string not found.");           //创建Mongo数据服务及连接           mongo=new Mongo(connstr);           mongo.Connect();           //获取数据库实例(如果该实例不存,就自动创建simple实例)           simple=mongo["simple"];           //获取表名(如果该表名不存在,就会自动创建Categories表名)           categories=simple.GetCollection<Document>("categories");           //添加记录前清除所有记录           Clean();           var names=new []{"Judy", "BOB", "Ricky", "Alice", "Mary", "Linda"};           //循环插入记录document会自动生成键值_id,id的编码体现了数据的插入顺序           foreach(var name in names)               categories.Insert(new Document{{"name",name}});                 }       public void Clean()       {           //删除document name 为Jazz的记录           //categories.Remove(new Document{{"name","Jazz"}});           //删除所有记录集           categories.Remove(new Document());       }       public void Run()       {           //查找单条记录 参数类型为Document           var category=categories.FindOne(new Document{{"name","Judy"}});           Console.WriteLine("The id findOne"+category["_id"]);           //更新1 用键值ID读取对象,并更新字段值,保存           var selector=new Document{{"_id",category["_id"]}};           category["name"]="Judy1";           categories.Save(category);           Console.WriteLine("Category after one update " + categories.FindOne(selector));           //更新2 Update参数1去更新参数2并保存           category["name"]="Judy2";           categories.Update(category,selector);           Console.WriteLine("Category after two updates " + categories.FindOne(selector));           //Find it by _id that has been vonverted to a string now.           var id=(category["_id"]).ToString();                       Console.WriteLine("输出所有对象......");           using(var all=categories.Find(new Document()))           {               foreach(var doc in all.Documents)                   Console.WriteLine(doc.ToString());           }           mongo.Disconnect();       }          }
3.Program.cs 执行代码

static void Main(string[] args)        {            var main = new MainClass();            main.Setup();            main.Run();            Console.ReadLine();        }
4.执行


参考:http://www.cnblogs.com/huangxincheng/archive/2012/03/09/2386054.html

          &http://www.cnblogs.com/mecity/archive/2011/06/12/MongoDB.html

0 0