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; usingMongoDB.Bson.Serialization.Attributes; namespace MongoTest1 { public static classMongoUnitily { //数据库连接字符串 static string conn = "mongodb://127.0.0.1:27017"; //数据库名称 static string database = "appdb";//数据库名 static MongoUrl url = newMongoUrl(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"; } } }

Mongodb 官网驱动2.2.4.26版本 增,删 改,查,mongodb2.2.4.26的更多相关文章

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

    Mongodb是3.2.7版本 最近在学习mongodb数据库在网上找到的都不是2.X版本以下的,因为驱动从2.X以后修改了很多,以前不支持linq现2.X也支持了, Mongodb 启动服务就不说了 ...

  2. MongoDB官网驱动仓库封装

    定义IMongoRepositoryBase接口 public interface IMongoRepositoryBase     {         /// <summary>     ...

  3. Java操作MongoDB:连接&增&删&改&查

    1.连接 ①方式一 MongoClientOptions.Builder builder = MongoClientOptions.builder(); //可以通过builder做各种详细配置 Mo ...

  4. MongoDB增 删 改 查

    增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...

  5. Ubuntu14.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  6. Ubuntu16.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  7. MongoDB 红宝书-MongoDB官网使用指南

    本文转载自Mongodb中文社区:http://www.mongoing.com/archives/27359 无论你是MongoDB的使用者.爱好者.初学者还是路人甲,有一个学习与进修的资源宝藏是千 ...

  8. 如何在官网下载java JDK的历史版本

    如何在官网下载java JDK的历史版本 http://jingyan.baidu.com/article/9989c746064d46f648ecfe9a.html 如何在官网下载java JDK的 ...

  9. MongoDB 官网教程 下载 安装

    官网:https://www.mongodb.com/ Doc:https://docs.mongodb.com/ Manual:https://docs.mongodb.com/manual/ 安装 ...

随机推荐

  1. java计算年龄

    精确到天计算年龄 public static int getAgeByCardId(String card) throws Exception { Integer len = card.length( ...

  2. 深入理解Activity启动流程(一)–Activity启动的概要流程

    概述 Android中启动某个Activity,将先启动Activity所在的应用.应用启动时会启动一个以应用包名为进程名的进程,该进程有一个主线程,叫ActivityThread,也叫做UI线程. ...

  3. 浅谈拒绝服务攻击的原理与防御(4):新型DDOS攻击 – Websocket和临时透镜

    0×01 前言 前几天我已经分别发了三篇关于DDOS攻击相关的文章,我也是第一次在freebuf上发表这种文章,没想到有那么多人点击我真的很开心,前几天我为大家介绍的DDOS攻击的方法和原理都是已经出 ...

  4. [反汇编练习] 160个CrackMe之034

    [反汇编练习] 160个CrackMe之034. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  5. win10拷贝文件卡顿的问题-竟然是winrar搞的

    win10拷贝文件卡顿的问题-竟然是winrar搞的 学习了: http://www.w10zj.com/Win10xy/Win10xf_3378.html 没想到你竟然是这样的WinRAR 去除了s ...

  6. [Algorithms] Tree Data Structure in JavaScript

    In a tree, nodes have a single parent node and may have many children nodes. They never have more th ...

  7. python3 查看已安装的模块

    一.命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交互解释器中使用help()查看 在交互式解释器中输入>>> help(&qu ...

  8. vue 避免渲染时闪烁

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  9. mysql flush详解

    http://www.cnblogs.com/ggjucheng/archive/2012/11/07/2758021.html   cnblogs - FLUSH TABLES WITH READ ...

  10. leetcode第一刷_Permutation Sequence

    这道题还挺好的,假设你的思路是每次生成一个全排列,然后累计到k次,那么停下来吧.肯定超时了亲.. 微软今年的笔试题里有一道类似的,我之前已经提到过了.是唯独0和1的字符串,求第k个排列是什么样子的.这 ...