MongoDB的官方驱动下载地址:https://github.com/mongodb/mongo-csharp-driver/releases

目前最新的版本是2.10,支持.NET 4.5以上。由于我现在的程序还在.NET4.0上面构建,所以这里使用1.10.1版本。

添加引用

解压下载到的驱动,然后在我们的程序中添加引用:

MongoDB.Bson.dll 
MongoDB.Driver.dll

然后在代码中添加Using:

using MongoDB.Bson;
using MongoDB.Driver;

创建Client、Server、Database

var connectionString = "mongodb://localhost:27017";
var client = new MongoClient(connectionString);
var server = client.GetServer();
var db = server.GetDatabase("mydb");

connectionString可以从配置文件中获取。

client对象是线程安全的,那么,我们可以把它存到一个全局的变量中。

有了db对象,我们就可以进行访问了。

使用Collection

Collection是文档(document)的集合,可以理解为我们的数据表。而每一个文档就是我们的一行数据。在MongoDB的驱动中,我们有两种方式来使用Collection:

  1. 使用 BsonDocument 模型
  2. 使用自定义的实体模型

如果我们的文档结构比较复杂,或者定义为实体模型比较困难,那么推荐使用BsonDocument模型。

如果我们的文档结构清晰,存储的字段也是固定的,那么推荐使用自定义的实体模型。实体对象的格式如下:

public class Entity
{public ObjectId Id { get; set; }public string Name { get; set; }
}

我们在获取Collection引用的时候,需要提供一个文档类型:

var collection = db.GetCollection<Entity>("entities");

CURD操作

在有了Collection之后,我们可以写一个CURD的例子:

var collection = db.GetCollection<Entity>("entities");var entity = new Entity { Name = "Tom" };
collection.Insert(entity);
var id = entity.Id;var query = Query<Entity>.EQ(e => e.Id, id);
entity = collection.FindOne(query);entity.Name = "Dick";
collection.Save(entity);var update = Update<Entity>.Set(e => e.Name, "Harry");
collection.Update(query, update);collection.Remove(query);

作者:齐飞(youring2@gmail.com)

原文链接:http://www.qeefee.com/article/000559

如果认为此文对您有帮助,别忘了支持一下哦!

作者:齐飞
来源:http://youring2.cnblogs.com/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。
转载:http://www.cnblogs.com/youring2/p/4894536.html 

在C#中使用官方驱动操作MongoDB相关推荐

  1. 使用Golang驱动操作MongoDB

    微信公众号:运维开发故事,作者:wanger 上篇文章我们介绍了使用pymongo对MongoDB进行CRUD,本篇将介绍使用Golang驱动操作MongoDB 安装MongoDB驱动程序 mkdr ...

  2. 使用golang驱动操作MongoDB数据库

    安装MongoDB驱动程序 mkdr mongodb cd mongodb go mod init go get go.mongodb.org/mongo-driver/mongo 连接MongoDB ...

  3. MongoDB学习笔记~官方驱动的原生Curd操作

    回到目录 MongoDB的官方C#驱动,让我们使用起来也很方便,但对于Linq开发人员来说,可能有些不了解,所以,我还是将官方驱动进行了二次封装,而对于一个比较个性化的mongo操作,使用我封装的也很 ...

  4. golang操作mongodb的驱动mongo-go-driver的事务支持和访问控制(mongodb4.0)

    关注公众号 风色年代(itfantasycc) 300G微服务资料等你拿! 作者: sdghchj 本文链接:golang操作mongodb的驱动mongo-go-driver的事务支持和访问控制_s ...

  5. 使用mongoose 在 Node中操作MongoDB数据库

    MongoDB 关系型和非关系型数据库 关系型数据库(表就是关系,或者说表与表之间存在关系). 所有的关系型数据库都需要通过sql语言来操作 所有的关系型数据库在操作之前都需要设计表结构 而且数据表还 ...

  6. golang常用库之-mgo.v2包、MongoDB官方go-mongo-driver包、七牛Qmgo包 | go操作mongodb、mongodb bson

    文章目录 golang常用库之-mgo.v2包.MongoDB官方go-mongo-driver包.七牛Qmgo包 | go操作mongodb.mongodb bson 一.[不推荐]mgo.v2包 ...

  7. 快速掌握mongoDB(五)——通过mongofiles和C#驱动操作GridFS

    1 GridFS简介 当前Bson能存储的最大尺寸是16M,我们想把大于16M的文件存入mongoDB中怎么办呢?mongoDB提供的GridFS就是专门做这个的.使用GridFS存储大文件时,文件被 ...

  8. 58 Node.js中操作mongoDB数据库

    技术交流 QQ 群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder 的程序人生 1.数据库概述及环境搭建 1.1 为什么要使用数据库 动态网站中的数据都是存储在数据 ...

  9. Java操作MongoDB数据库(简明版)

    除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法.MongoDB 官方提供了 Java 和 Python 语言的驱动包,利用这 ...

最新文章

  1. Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
  2. vMA学习笔记之一:将vMA加入域
  3. 代码开源!激光雷达 SLAM 的闭环检测:OverlapNet
  4. Java 内存模型 与 高效并发
  5. 训练日志 2019.1.25
  6. qmc0文件怎么转换mp3_怎么用手机把手机里的视频转换成mp3音乐?(手机,不是电脑)...
  7. 如何选择物业管理软件,五大误区需要避免
  8. 计算机系统与itunes不兼容,解决XP系统安装iTunes的要求更改更高版本的不兼容情况...
  9. X轴间隔显示-长江水位
  10. Xcode slicing 精解
  11. 金士顿 DT101 G2 8GU盘量产全过程图解(群联篇)(2)
  12. 开发一个app多少钱?app开发费用明细、app开发成本计算
  13. 安全生产计算机考试成绩查询,安全生产在线模拟考试成绩查询
  14. .nav ul .mall a:hover 是什么意思
  15. 那时的回忆~九州幻想!
  16. rdp远程Windows10连接不上的解决方案
  17. 【转】电脑电源如何安装 (清晰大图详解电脑组装时各接口线缆细节)
  18. Unity3D 学习 代码
  19. CWnd::WindowProc的理解
  20. 前端类库开发最佳实践

热门文章

  1. 中国高校最强超算!上算引力波,下算光量子
  2. ACM Fellow发文抨击「同行评审」作弊:有「门道」的作者带飞,垃圾论文也能轻松中顶会...
  3. 看完苹果这场最新发布会,我只能说:太sao了
  4. 小马智行L4无人车今日量产下线,这比融资更具里程碑意义
  5. 技术宅硬核跨年,DIY墨水屏日历:自动刷新位置、天气,随机播放2000多条「毒鸡汤」| 开源...
  6. 你的AI模型有哪些安全问题,在这份AI攻防”词典”里都能查到
  7. 从挂起到实现,你知道内核是如何实现的?
  8. c++重载后置++和--
  9. DotNetBar的使用—(界面风格)
  10. JAVA修饰符类型(public,protected,private,friendly)