内容来源 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 数据库的更多相关文章

  1. 在 ASP.NET Core 项目中实现小写的路由URL

    在 ASP.NET MVC 早期版本中,我们可以通过在应用的 RegisterRoutes 方法中设置 routes.LowercaseUrls = true ; 来将页面的 URL 链接转小写.在 ...

  2. 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

    一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...

  3. 在 ASP.NET Core 项目中使用 MediatR 实现中介者模式

    一.前言  最近有在看 DDD 的相关资料以及微软的 eShopOnContainers 这个项目中基于 DDD 的架构设计,在 Ordering 这个示例服务中,可以看到各层之间的代码调用与我们之前 ...

  4. 在 ASP.NET Core 项目中使用 npm 管理你的前端组件包

    一.前言 在项目的前端开发中,对于绝大多数的小伙伴来说,当然,也包括我,不可避免的需要在项目中使用到一些第三方的组件包.这时,团队中的小伙伴是选择直接去组件的官网上下载,还是图省事直接在网上搜索,然后 ...

  5. ASP.NET Core项目中新增和删除的内容

    最新一版的.NET几经改名,最终得到了.NET Core这个高大上的名称,相应的ASP.NET MVC也跟着提供了ASP.NET Core MVC版本. 在.NET Core没有稳定名称时,叫做MVC ...

  6. Captcha服务(后续2)— 改造Captcha服务之Asp.Net Core项目中如何集成TypeScript

    环境准备 .Net Core 版本:下载安装.Net Core SDK,安装完成之后查看sdk版本 ,查看命令dotnet --version,我的版本是2.2.101 IDE: Visual Stu ...

  7. VisualStudio2017中新建的ASP.NET Core项目中的各个文件的含义

     Program.cs is the entry point for the web application; everything starts from here. As we mentione ...

  8. 在IIS上部署你的ASP.NET Core项目

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...

  9. ASP.NET Core 项目简单实现身份验证及鉴权

    ASP.NET Core 身份验证及鉴权 目录 项目准备 身份验证 定义基本类型和接口 编写验证处理器 实现用户身份验证 权限鉴定 思路 编写过滤器类及相关接口 实现属性注入 实现用户权限鉴定 测试 ...

随机推荐

  1. powerdesigner 不能自动生成注释的解决方法(三步解决)

    解决power designer 不能自动生成注释的解决办法只需要3步: 一.快捷键 Ctrl+Shift+X 打开脚本编辑器:(快捷键不能执行的话可以从这个路径执行:Tools --> Exc ...

  2. ABP入门系列(2)——领域层创建实体

    ABP入门系列目录--学习Abp框架之实操演练 这一节我们主要和领域层打交道.首先我们要对ABP的体系结构以及从模板创建的解决方案进行一一对应.网上有代码生成器去简化我们这一步的任务,但是不建议初学者 ...

  3. H5 和移动端 WebView 缓存机制解析与实战

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/qHm_dJBhVbv0pJs8Crp77w 作者:叶 ...

  4. MySQL 分区建索引

    200 ? "200px" : this.width)!important;} --> 介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张 ...

  5. CS231n 第一次作业KNN中本地CIFAR10数据集的载入

    一.问题描述 网上绝大多数作业参考都是在jupyter下运行的,数据集载入过程一般如下: from cs231n.data_utils import load_CIFAR10 #导入数据集,并打印出数 ...

  6. [Swift]LeetCode119. 杨辉三角 II | Pascal's Triangle II

    Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle. Note t ...

  7. [Swift]LeetCode1027. 最长等差数列 | Longest Arithmetic Sequence

    Given an array A of integers, return the length of the longest arithmetic subsequence in A. Recall t ...

  8. FAutoTest-微信小程序 / 公众号H5 自动化利器

    X5内核H5自动化背景 近来有很多童靴咨询如何做微信小程序/公众号等H5页面来做自动化,之前写了一篇文章微信小程序自动化测试实践 https://www.cnblogs.com/yyoba/p/945 ...

  9. java线程阻塞唤醒的四种方式

    java在多线程情况下,经常会使用到线程的阻塞与唤醒,这里就为大家简单介绍一下以下几种阻塞/唤醒方式与区别,不做详细的介绍与代码分析 suspend与resume Java废弃 suspend() 去 ...

  10. xtrabackup备份

    增量备份: xtrabackup --backup --target-dir=/data/backup/base --datadir=/var/lib/mysql xtrabackup --backu ...