• 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
  • 相关阅读:
    2016/3/16 高级查询 ①连接查询 ②联合查询 ③子查询 无关 相关
    2016/3/13 七种查询 (普通查询 条件查询 排序查询 模糊查询 统计查询 分组查询 分页查询 )
    2016/3/13 MySQL 增删查改 CRUD 用代码实现
    2016/3/10 数据库简单操作( 创建数据库 创建表 数值类型 主键 外键 自动递增 )
    2016/3/10 PHP环境搭建 LAMP WAMP
    2016/3/10 PHP (超文本预处理器) 是什么?
    2016/3/1 淘宝 腾讯 网易 css初始化代码 以及最基础的初始化
    判断i在字符串中出现的次数(2016.1.12P141-1)
    2016-1-9作业——输出二维数组的和
    2016-1-8作业
  • 原文地址:https://www.cnblogs.com/imeiba/p/5663088.html
Copyright © 2020-2023  润新知