在微服务框架Demo.MicroServer中添加对MongoDB的支持前提说明:
本编文章所属的微服务框架代码和对mongo支持的代码全部放在github,地址:https://github.com/PeyShine/Demo.MicroServer
另外,如果不知道怎么安装mongodb可以看这篇:https://www.cnblogs.com/peyshine/p/12876471.html
1.在数据仓储层Demo.MicroServer.Repository,添加Mongo依赖包:dotnet add package MongoDB.Driver
2.编写mongo常用的一些接口以及接口的实现,后续可以根据实际开发情况再进行更多接口的封装
![4b2b32e95d09fa6477fc4f492a0d1299.png](https://i-blog.csdnimg.cn/blog_migrate/4a5d2a11580e716e5600e35019a64d62.jpeg)
![7836cc2b2da9a9d5b0504c8b6e5767c5.png](https://i-blog.csdnimg.cn/blog_migrate/cdc2e82b28679f72460baa1f23b7b93b.jpeg)
构造函数中的mongodb的配置文件全部读取Apollo配置中心
![a2a4c58f24e4a8b692449fc9552a3cbf.png](https://i-blog.csdnimg.cn/blog_migrate/20442a9d165a62d3e37c861121c0bb5b.png)
3.在具体使用mongo的微服务实例的Startup文件ConfigureServices中向容器添加接口与实现
1services.AddTransient(typeof(IMongoService),
typeof(MongoService));
4.编写与mongoDB交互的测试接口/// <summary>
/// 测试从mongodb中获取用户数量
/// </summary>
/// <returns></returns>
[HttpGet]
public
async Task<long> GetMongoUserCount()
{
var
list =
new
List<FilterDefinition<user_mongo>>();
list.Add(Builders<user_mongo>.Filter.Exists("user_id",
true));
var
filter = Builders<user_mongo>.Filter.And(list);
return
await _mongoService.CountAsync(filter,
"users");
}
5.在mongo中准备两条测试数据
![f3e404920ab4cb0127eff235617b3602.png](https://i-blog.csdnimg.cn/blog_migrate/04a4947e655ca37dc4f93dca493c5e3c.jpeg)
6.在swagger中调用接口来测试
![276fb89f621e34d9f5d35c568aff4820.png](https://i-blog.csdnimg.cn/blog_migrate/4969ff0619e3bec4a6d2ce05412fa8c8.png)
最后看到输出结果为数量为2,和添加的数量一致。
![24a9fbae6dce2651a27fc3498de3d60e.png](https://i-blog.csdnimg.cn/blog_migrate/dca2f4923b06b37c91f8fa392be2da86.png)