本身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. 洛谷 P1056 排座椅 桶排序

    桶排序大法好! 每次一看到这种范围小的题,本萌新就想用桶排. 因为题目中的m,n都小于1000,我们就可以定义两个1000的数组,表示每一行或每一列可以隔开几对讲话的童鞋. 然后再定义两个1000的数 ...

  2. python爬虫:抓取下载电影文件,合并ts文件为完整视频

    目标网站:https://www.88ys.cc/vod-play-id-58547-src-1-num-1.html 反贪风暴4 对电影进行分析 我们发现,电影是按片段一点点加载出来的,我们分别抓取 ...

  3. Madgwick IMU Filter

    论文链接:http://202.114.96.204/cache/13/03/x-io.co.uk/35c82431852f2aa7d0feede9dc138626/madgwick_internal ...

  4. HTTP::UserAgent注意问题

    例用 HTTP::Request 设置头信息时, 比如 add-content , 第二次再执行 add-content 时, content 内容会追加, 并不会重新添加. 当下次再 add-con ...

  5. 通过JavaScript自由切换iframe

    我发现我有很大的强迫症,如果看到别人的文章没有最终的效果图,我会毫不犹豫关掉这个页面.真的很炸毛这种,让我有很不舒服的体验:所以纵使网上有类似的了,我还是写一篇给那些跟我有同样症状的人阅读. 首先来学 ...

  6. 【干货】DD 和 netcat实战---擦除数据和远控

    原创:Unit 2: Linux/Unix Acquisition 2.1 Linux/Unix Acquistion Using dd Continued DD也是一个复制设备数据的工具,比特流复制 ...

  7. 『Numpy学习指南』Matplotlib绘图

    数据生成: import numpy as np import matplotlib.pyplot as plt func = np.poly1d(np.array([,,,])) func1 = f ...

  8. linux下的usb转串口的使用(修改)【转】

    环境:Ubuntu 10.10 Server minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将 ...

  9. JavaScript中对象与函数的某些事[JavaScript语言精粹-N1]

    今天在读<JavaScript语言精粹>的时候,关于函数的一个部分,始终觉得有点难以理解,代码如下: 1: var obj = (function(){ 2: var value = 0; ...

  10. Android网络框架之Retrofit + RxJava + OkHttp 变化的时代

    1.什么是Retrofit框架? 它是Square公司开发的现在非常流行的网络框架,所以我们在导入它的包的时候都可以看到这个公司的名字,目前的版本是2. 特点: 性能好,处理快,使用简单,Retrof ...