一、创建测试库、测试表、添加测试数据
使用之前文章提到的MongoDB Compass用法分别添加数据库[myDb]和集合(表)[userinfos]信息,
参考链接为:MongoDB Compass的安装及使用图文说明(非常详细),同时数据库连接语句也可从MongoDB Compass中获得

使用mongo shell命令添加测试数据

添加完成,MongoDB Compass中可看到已添加的数据

二、新建ASP.NET Core Web API项目
1、使用NuGet包管理器添加MongoDB.Driver

2、编写demo示例
1)插入
向myDb.userinfos中插入一条数据
1  | /// <summary>  | 
在MongoDB compass中可以看到新增的数据

2)查询
① 简单查询
1  | /// <summary>  | 
简单查询结果为:

② AND查询
1  | /// <summary>  | 
AND查询结果为:

③ OR查询
1  | /// <summary>  | 
OR查询结果为:

④ 字段存在(Exists)
1  | /// <summary>  | 
字段存在(Exists)的查询结果为:

⑤ 排序(Sort)
1  | /// <summary>  | 
排序(Sort)的查询结果为:

⑥ 查询指定字段(Projection)
1  | /// <summary>  | 
查询指定字段(Projection)的查询结果为:

3)修改
① 修改单条记录(UpdateOne)
1  | /// <summary>  | 
② 修改多条记录(UpdateMany)
1  | /// <summary>  | 
修改多条记录(UpdateMany)的结果为:

4)删除
① 删除单条记录(DeleteOne)
1  | /// <summary>  | 
删除单条记录(DeleteOne)的结果为:

② 删除多条记录(DeleteMany)
1  | /// <summary>  | 
删除多条记录(DeleteMany)的结果为:

5)类型映射
① 查询结果映射到实体类示例
mongoDB支持自动映射,直接使用泛型即可
1  | /// <summary>  | 
用户信息类
1  | /// <summary>  | 
英文名类
1  | /// <summary>  | 
查询结果映射到实体类示例的结果为:

② 查询结果映射到实体类示例 - 常用属性修改上方代码
上边的例子仅仅用了基本的自动化映射,使用基本的自动化映射时:类和Bson中的字段必须严格一致(_id除外,可以自动映射到_id/id/Id),且Bson中的每一个字段在实体类中都必须有一个对应的字段,不然就会抛出异常,这就造成我们可能要写一个非常庞大的实体类,而且类中的字段命名也要严格和Bson中的字段一致。这些限制对我们开发来说是不能接受的,这里我们采用mongoDriver中的一些属性改进一下上边的代码,如下:
1  | /// <summary>  | 
用户信息类 - Bson
1  | /// <summary>  | 
英文名类 - Bson
1  | /// <summary>  | 
查询结果映射到实体类示例 - 常用属性修改上方代码的结果为:

6)使用LINQ查询
① 基本查询:查找年龄大于22岁的学生;② 连接查询:查询各个学生的学号、姓名、班级名
1  | /// <summary>  | 
学生类
1  | /// <summary>  | 
班级类
1  | /// <summary>  | 
查找年龄大于22岁的学生以及查询各个学生的学号、姓名、班级名的结果如下:

三、附录
1、userinfos表测试数据
1  | use myDb  | 
2、student表测试数据
1  | db.students.insertMany([  | 
3、classs表测试数据
1  | db.classes.insertMany([  |