zoukankan      html  css  js  c++  java
  • C#实现对mongoDB的简单增删查改

    首先添加所需要驱动包(可通过nuget获得)

    using MongoDB.Bson;
    using MongoDB.Driver;
    using MongoDB.Driver.Builders;

    一、设置配置信息

      //连接信息
            static string conn = "mongodb://localhost";
            static string database = "test";
            static string collection = "person";
    
            static MongoServer mongodb = MongoServer.Create(conn);//连接数据库
            static MongoDatabase db = mongodb.GetDatabase(database);//选择数据库名
            static MongoCollection mc = db.GetCollection(collection);//选择集合,相当于表

    二、插入数据库

    public static void Insert(Person p)
    {
      mc.Insert(p);
    }
    
    public static void Insert(BsonDocument b)  
    {
      mc.Insert(b);
    }

    三、更新数据库

         public static void Update(Person p)
            {
                BsonDocument bd = BsonExtensionMethods.ToBsonDocument(p);
                IMongoQuery query = Query.EQ("_id", p._id);
                mc.Update(query, new UpdateDocument(bd));
            }
    
            public static void Update(QueryDocument q,UpdateDocument u)
            {
                mc.Update(q, u);
            }

    四、删除某条记录

     public static void Delete(int id)
     {
         mc.Remove(Query.EQ("_id", id));
     }

    五、查询数据库

            public static Person Find(int id)
            {
                return mc.FindOneAs<Person>(Query.EQ("_id", id));
            }
    
            public static MongoCursor<Person> FindAll()
            {
                return mc.FindAllAs<Person>();
            }
    
            public static MongoCursor<Person> Select(QueryDocument q)
            {
                return mc.FindAs<Person>(q);
            }

    六、统计数据个数

     public static long Count(QueryDocument q)
      {
           return mc.Count(q);
     }

    七、排序和分页

       public static MongoCursor<Person> SkipAndLimit(int a, int b)
            {
                return mc.FindAllAs<Person>().SetSkip(a).SetLimit(b);
            }

    八、应用与示例

       static void Main(string[] args)
            {
                mongodb.Connect();
    
                //var person = Find(124);
                //Console.WriteLine(person.Name);
    
                //person.Name = "guizhu";
                //Update(person);
                //Console.WriteLine(person.Name);
    
                var query = new QueryDocument { { "_id",13} };
                var update = new UpdateDocument { { "$set", new QueryDocument { { "PassWord", "aaaaa" } } } };
                Update(query,update);
    
                //对象插入
                //Person p = new Person { _id = 12, Name = "hello", PassWord = "4444" };
                //Insert(p);
    
                //BsonDocument 插入
                //BsonDocument b = new BsonDocument();
                //b.Add("_id", 13);
                //b.Add("Name", "world");
                //b.Add("PassWord", "6666");
                //Insert(b);
    
                //var p= FindAll();
                //foreach (var person in p)
                //{
                //    Console.WriteLine(person.Name);
                //}
    
                //QueryDocument query = new QueryDocument();
                //BsonDocument b = new BsonDocument();
                //b.Add("$gte", 123);
                //b.Add("$lt", 125);
                //query.Add("_id", b);
                //var p=Select(query);
                //foreach (var person in p)
                //{
                //    Console.WriteLine(person.Name);
                //}
    
                //Console.WriteLine(Count(query));
    
                //FieldsDocument f = new FieldsDocument();
                //f.Add("Name", 1);
                //MongoCursor<Person> m = mc.FindAs<Person>(query).SetFields(f);
                //foreach (var person in p)
                //{
                //    Console.WriteLine(person.Name);
                //}
    
    
                //SortByDocument s = new SortByDocument();
                //s.Add("_id", 1);//-1=DESC
                //var p = Sort(s);
                //foreach (var person in p)
                //{
                //    Console.WriteLine(person.Name);
                //}
    
                //var p = SkipAndLimit(1, 3);
                //foreach (var person in p)
                //{
                //    Console.WriteLine(person.Name);
                //}
                
                //Delete(12);
                Console.WriteLine("完成");
                Console.ReadLine();
            }
      class Person
        {
            public int _id;
            public string Name;
            public string PassWord;
    
        }

    源码下载地址:链接:http://pan.baidu.com/s/1c0tlXZi 密码:1es5

  • 相关阅读:
    Rational工具介绍(转)
    MySQL表的存储引擎
    2009 年度最佳 jQuery 插件
    09年关门歇业的15大网站 雅虎旗下4网站上榜
    [转载]windows2003上IIS+PyISAPIe1.1..0部署成功
    安装IronPythonStudio出错:已解决
    C# 开源项目
    Cassandra在windows平台下安装布署,对No SQL感兴趣的朋友可以进来看看
    【转载】开发人员用的一些好网站
    [转载]用来武装Firebug的十三款Firefox插件
  • 原文地址:https://www.cnblogs.com/xuhang/p/4201417.html
Copyright © 2011-2022 走看看