Mongodb 官网驱动2.2.4.26版本 增,删 改,查

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().........这样来赋值

 

全部代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MongoDB.Driver;
using MongoDB.Bson;
using MongoDB.Driver.Linq;
using MongoDB.Bson.Serialization.Attributes;

namespace MongoTest1
{
    public static class MongoUnitily
    {
        //数据库连接字符串
        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.AnyEq("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();
        }

   





    }
}
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"; }
    } 
}
View Code

 

posted @ 2016-07-12 12:21  清风小筑  阅读(1957)  评论(0编辑  收藏  举报