本身MongoDB直接支持的是Bson文档,Bson文档在C#的官方驱动中对应的是BsonDocument类:

var bsonDoc = new BsonDocument()
{
    ["_id"]  = "123",
    ["Name"] = "Jack",
    ["Age"]  = 32,
};

由于Bson和Json本身非常类似,所以它和Json一样,和.net对象之间互相转换是非常容易的。

public class Person
{
    public string Id   { get; set; } = "123";
    public string Name { get; set; }
    public int    Age  { get; set; }
} var person = BsonSerializer.Deserialize<Person>(bsonDoc);
var doc = person.ToBsonDocument();

MongoDB本身的增删改查都是直接针对Bson文档进行的:

var collection = database.GetCollection<BsonDocument>("foo");
collection.InsertOne(bsonDoc);

为了使用方便,也可以使用强类型的集合。

var collection = database.GetCollection<Person>("foo");

var person = new Person()
{
Id = "",
Name = "Jack",
Age = ,
}; //插入
collection.InsertOne(person); //查询
collection.Find(i => i.Name == "Jack"); //更新
collection.ReplaceOne(i => i.Id == "", person); //删除
collection.DeleteOne(i => i.Id == "");

由于支持Linq,用起来还是非常方便的。当然,也可以使用MongoDb本身的查询功能。

//查询
result = collection.Find(Builders<Person>.Filter.Eq(i=>i.Name, "Jack")).ToList(); //更新
collection.ReplaceOne(Builders<Person>.Filter.Eq(i => i.Id, ""), person); //更新部分字段
collection.UpdateOne(Builders<Person>.Filter.Eq(i => i.Id, ""),
Builders<Person>.Update.Set(i => i.Age, )); //删除
collection.DeleteOne(Builders<Person>.Filter.Eq(i => i.Id, ""));

甚至的,如果熟悉MongDB的命令,也可以直接使用Mongo命令,更加简洁。

//查询
result = collection.Find("{ Name: 'Jack' }").ToList(); //更新
collection.UpdateOne("{Name: 'Jack' }", "{$set:{'Age':'37'}}"); //删除
collection.DeleteOne("{Name: 'Jack' }");

这种方式类似Sql,非常简洁,但是失去了类型检查,至于如何选择,则需要看具体场合了。

参考文档:

MongoDB简单使用 —— 基本操作的更多相关文章

  1. MongoDB学习:(二)MongoDB简单使用

    MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...

  2. mongodb 简单部署方案及实例

    mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb  我这里选用rehl 5.6 ...

  3. .Net Core MongoDB 简单操作。

    一:MongoDB 简单操作类.这里引用了MongoDB.Driver. using MongoDB.Bson; using MongoDB.Driver; using System; using S ...

  4. python和mongodb简单交互

    python和mongodb简单交互 1.安装pymongo: pip3 install pymongo 2.pymongo的简单用法: # /usr/bin/env python3 import p ...

  5. MongoDB简单CRUD场景

    MongoDB简单CRUD命令操作 (1)新建数据库:use 数据库名 (2)显示所有数据库:show dbs; (3)新建集合(两种方式)  隐式创建:在创建集合的同时往集合里面添加数据---db. ...

  6. MongoDB数据库(一):基本操作

    1.NoSQL的概念 "NoSQL"一词最早于1998年被用于一个轻量级的关系数据库的名字 随着web2.0的快速发展,NoSQL概念在2009年被提了出来 NoSQL最常见的解释 ...

  7. MongoDB入门_shell基本操作

    使用shell客户端连接mongoDB数据库 [root@localhost mongodb_simple]# ./bin/mongo /admin mongoDB的简单基本操作 1. mongoDB ...

  8. NodeJS+Express+MongoDB 简单实现数据录入及回显展示【适合新人刚接触学习】

    近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思 ...

  9. linux下MongoDB客户端shell基本操作

    MongoDB 是一款NoSql数据库,没有固定的模式,即同一个集合中的不同文档结构可以不同,如:第一条记录{name:”xiaoming”},第二条记录:{name:”xiaoli”,age:15} ...

随机推荐

  1. 怎样提高WebService的性能

    服务器端WebService程序: using System.Runtime.Serialization.Formatters.Binary; using System.IO; using Syste ...

  2. Flex 经验笔记一

    Module页面嵌套子Module页面直接用标签嵌入是不行的,无法显示出来,需要用到 ModuleManager 使用ModuleInfo 的 addEventListener 判断当子Module ...

  3. HDU 1229 还是A+B(A+B陶冶情操)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1229 解题报告:A+B #include<cstdio> int main() { int ...

  4. artDialog学习之旅(一)

    接口 配置参数 content: {消息内容,支持HTML} title: {标题.默认:'提示'} lock: {是否锁定屏幕. 默认:false} width: {宽度,支持em等单位. 默认:' ...

  5. 内置函数bytes()

    a=b'\x00\x9c@c' print a[3]#99,c的ascii码是99 print a[1]#156 并且byte是无法修改的 c[1]=155 Traceback (most recen ...

  6. H - Tickets dp

    题目链接: https://cn.vjudge.net/contest/68966#problem/H AC代码; #include<iostream> #include<strin ...

  7. HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)

    参考文献: http://bbs.csdn.net/topics/390952011 http://blog.csdn.net/ljj_9/article/details/53306468 1.下载地 ...

  8. 目标检测--Selective Search for Object Recognition(IJCV, 2013)

    Selective Search for Object Recognition 作者: J. R. R. Uijlings, K. E. A. van de Sande, T. Gevers, A. ...

  9. ajax调用WebService 不能跨域

    http://www.cnblogs.com/dojo-lzz/p/4265637.html "Access-Control-Allow-Origin":'http://local ...

  10. dede列表页调用

    {dede:list pagesize ='16'} <li class="item pull-left"> <a class="item-wrap&q ...