Asp.net Core 项目中如何使用 MongoDB 数据库
内容来源 https://blog.csdn.net/qq_26900081/article/details/83272132
一、添加依赖
1、MongoDB.Driver
2、MongoDB.Bson

二、配置服务到StartUp.cs
public void ConfigureServices(IServiceCollection services)
{
//添加mongodb依赖
string mongoConnectionString = Configuration.GetSection("Mongo:ConnectionString").Value;
services.AddSingleton(new MongoClient(mongoConnectionString));
}
三、添加配置到appsettings.json
{
"Mongo": {
"ConnectionString": "mongodb://账号:密码@服务器IP:27017/默认数据库名称"
}
}
四、自己编写的一个帮助类;这里只公布一部分。 其余的可以自行拓展
public class MongoBase<T>: IMongoBase<T> //接口可自己根据此类抽象出来
{ private IMongoCollection<T> mongoClient;
/// <summary>
///
/// </summary>
/// <param name="client"></param>
/// <param name="name">MongoDB的表名</param>
public MongoBase(MongoClient client, string name)
{
var database = client.GetDatabase("数据库名称");
mongoClient = database.GetCollection<T>(name);
} #region 新增单个 + void InsertOne(T entity)
/// <summary>
/// 新增单个
/// </summary>
/// <param name="entity"></param>
public void InsertOne(T entity)
{
mongoClient.InsertOne(entity);
}
#endregion #region 批量新增 + void InsertMany(IEnumerable<T> entity)
/// <summary>
/// 批量新增
/// </summary>
/// <param name="entity"></param>
public void InsertMany(IEnumerable<T> entity)
{
mongoClient.InsertMany(entity);
}
#endregion #region 查找第一个 + T FindFirst(FilterDefinition<T> filter,FindOptions option = null)
/// <summary>
/// 查找第一个
/// </summary>
/// <param name="filter"></param>
/// <param name="option"></param>
/// <returns></returns>
public T FindFirst(FilterDefinition<T> filter, FindOptions option = null)
{
return mongoClient.Find(filter, option).FirstOrDefault();
}
#endregion #region 查找多个 + List<T> FindList(FilterDefinition<T> filter, FindOptions option = null)
/// <summary>
/// 查找多个
/// </summary>
/// <param name="filter"></param>
/// <param name="option"></param>
/// <returns></returns>
public List<T> FindList(FilterDefinition<T> filter, FindOptions option = null)
{
return mongoClient.Find(filter, option).ToList();
}
#endregion }
五、编写一个MongoDB集合
这里使用一个叫UserInfo的MongoDB数据库集合做测试
public class UserInfoService : MongoBase<UserInfo>
{
public UserInfoService(MongoClient client) : base(client, "UserInfo")
{ } }
六、在Controller中使用
public class MongoController : Controller
{
private UserInfoService userInfo;
//使用DI注入;
public MongoController(UserInfoService _userInfo)
{
this.userInfo = _userInfo;
}
public IActionResult Index()
{
UserInfo user = userInfo.FindFirst(Builders<UserInfo>.Filter.Eq(p => p.Name, "Test"));
userInfo.InsertOne(new UserInfo() { Name="Test", UserID= }); user = userInfo.FindFirst(Builders<UserInfo>.Filter.Eq(p => p.Name, "Test"));
return View();
}
}
Asp.net Core 项目中如何使用 MongoDB 数据库的更多相关文章
- 在 ASP.NET Core 项目中实现小写的路由URL
在 ASP.NET MVC 早期版本中,我们可以通过在应用的 RegisterRoutes 方法中设置 routes.LowercaseUrls = true ; 来将页面的 URL 链接转小写.在 ...
- 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射
一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...
- 在 ASP.NET Core 项目中使用 MediatR 实现中介者模式
一.前言 最近有在看 DDD 的相关资料以及微软的 eShopOnContainers 这个项目中基于 DDD 的架构设计,在 Ordering 这个示例服务中,可以看到各层之间的代码调用与我们之前 ...
- 在 ASP.NET Core 项目中使用 npm 管理你的前端组件包
一.前言 在项目的前端开发中,对于绝大多数的小伙伴来说,当然,也包括我,不可避免的需要在项目中使用到一些第三方的组件包.这时,团队中的小伙伴是选择直接去组件的官网上下载,还是图省事直接在网上搜索,然后 ...
- ASP.NET Core项目中新增和删除的内容
最新一版的.NET几经改名,最终得到了.NET Core这个高大上的名称,相应的ASP.NET MVC也跟着提供了ASP.NET Core MVC版本. 在.NET Core没有稳定名称时,叫做MVC ...
- Captcha服务(后续2)— 改造Captcha服务之Asp.Net Core项目中如何集成TypeScript
环境准备 .Net Core 版本:下载安装.Net Core SDK,安装完成之后查看sdk版本 ,查看命令dotnet --version,我的版本是2.2.101 IDE: Visual Stu ...
- VisualStudio2017中新建的ASP.NET Core项目中的各个文件的含义
Program.cs is the entry point for the web application; everything starts from here. As we mentione ...
- 在IIS上部署你的ASP.NET Core项目
概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...
- ASP.NET Core 项目简单实现身份验证及鉴权
ASP.NET Core 身份验证及鉴权 目录 项目准备 身份验证 定义基本类型和接口 编写验证处理器 实现用户身份验证 权限鉴定 思路 编写过滤器类及相关接口 实现属性注入 实现用户权限鉴定 测试 ...
随机推荐
- 你不知道的JS之作用域和闭包(一)什么是作用域?
原文:你不知道的js系列 什么是作用域(Scope)? 作用域 是这样一组规则——它定义了如何存放变量,以及程序如何找到之前定义的变量. 编译器原理 JavaScript 通常被归类为动态语言或者解释 ...
- JSON File Parse
1.write a json file base on website(在网站上写一个json文件) json文件网址:https://raw.githubusercontent.com/DJOSIM ...
- Python课程学习总结
Python的介绍 Python是一种高级动态.完全面向对象的语言,函数.模块.数字.字符串都是对象,并且完全支持继承.重载.派生.多继承,有益于增强源代码的复用性. Python是一种计算机程序设计 ...
- 欢迎访问我的独立博客 tracefact.net (2019.1.30)
欢迎访问我的独立博客 tracefact.net 长期以来,我都同时维护着两个博客,博客园和 tracefact.net,感觉有点分散精力,所以博客园以后不再每篇文章都同步更新了. 我会挑个别比较好的 ...
- 【安富莱专题教程第1期】基于STM32的硬件RGB888接口实现emWin的快速刷新方案,32位色或24
说明:1. 首先感谢ST终于推出了ARGB格式的emWin库,可谓千呼万唤始出来,使用STM32的硬件RGB888接口刷新图片慢的问题终于得到解决.2. 这个问题由来已久,是之前为我们的STM32-V ...
- Node.js(day5)
一.NOSQL NOSQL是Not Only SQL的简称,与关系型数据库对应,一般称为非关系型数据库.关系型数据库遵循ACID规则,而NOSQL存储数据时不需要严格遵循固定的模式,因此在大数据的今天 ...
- [Swift]LeetCode161. 一次编辑距离 $ One Edit Distance
Given two strings S and T, determine if they are both one edit distance apart. 给定两个字符串S和T,确定它们是否都是是一 ...
- [Swift]LeetCode207. 课程表 | Course Schedule
There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have prereq ...
- [Swift]LeetCode771. 宝石与石头 | Jewels and Stones
You're given strings J representing the types of stones that are jewels, and S representing the ston ...
- 白话说java gc垃圾回收
gc是java区别于其他好几门语言(c/c++)的一个代表功能(当然也有很多可以自动管理内存的语言,如所有的脚本语言,你根本不知道内存管理这回事)! 当然,之所以要把c/c++和java相比,是因为j ...