ASP.NET Core3.1 中使用MongoDB基本操作
1、安装驱动包
install-package MongoDB.Driver -version 2.11.7
2、配置文件帮助类 ConfigHelper
public static class ConfigHelper
{
private static IConfiguration _configuration; static ConfigHelper()
{
//在当前目录或者根目录中寻找appsettings.json文件
string fileName = "appsettings.json"; string directory = AppContext.BaseDirectory;
directory = directory.Replace("\\", "/"); string filePath = $"{directory}/{fileName}";
if (!File.Exists(filePath))
{
var length = directory.IndexOf("/bin");
filePath = $"{directory.Substring(0, length)}/{fileName}";
} var builder = new ConfigurationBuilder().AddJsonFile(filePath, false, true);
_configuration = builder.Build(); } public static string GetSectionValue(string key)
{
return _configuration.GetSection(key).Value;
} }
3、appsettings.json配置
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"MongoDBAddress": "mongodb://192.168.0.161:27017", //连接字符串
"MongoDBName": "local" //集合名
}
4、实体类
/// <summary>
/// 公共实体类
/// </summary>
public class BaseModel
{
[BsonId] //标记主键
[BsonRepresentation(BsonType.ObjectId)] //参数类型 , 无需赋值
public string Id { get; set; } [BsonElement(nameof(CreateDateTime))] //指明数据库中字段名为CreateDateTime
public DateTime CreateDateTime { get; set; } //[BsonElement(nameof(IsDelete))]
public bool IsDelete { get; set; } public BaseModel()
{
CreateDateTime = DateTime.Now;
IsDelete = false;
}
}
namespace MongodbDemo.Models
{
public class Student : BaseModel
{
public string Name { get; set; }
public int Age { get; set; }
List<Course> _courses = new List<Course>();
public virtual List<Course> Courses { get { return _courses; } set { _courses = value; } }
}
public class Course
{
public string StudentId { get; set; }
public string Name { get; set; }
}
}
5、业务基础类
namespace MongodbDemo.Services
{
/// <summary>
/// 业务基础类
/// </summary>
/// <typeparam name="T"></typeparam>
public class BaseMongoDbService<T> where T : BaseModel
{
protected readonly IMongoCollection<T> _collection; //数据表操作对象 /// <summary>
/// 构造函数
/// </summary>
/// <param name="config"></param>
/// <param name="tableName">表名</param>
public BaseMongoDbService(string tableName)
{
var client = new MongoClient(ConfigHelper.GetSectionValue("MongoDBAddress")); //获取链接字符串
var database = client.GetDatabase(ConfigHelper.GetSectionValue("MongoDBName")); //数据库名 (不存在自动创建)
_collection = database.GetCollection<T>(tableName); // (不存在自动创建)
} //Find<T> – 返回集合中与提供的搜索条件匹配的所有文档。
//InsertOne – 插入提供的对象作为集合中的新文档。
//ReplaceOne – 将与提供的搜索条件匹配的单个文档替换为提供的对象。
//DeleteOne – 删除与提供的搜索条件匹配的单个文档。 /// <summary>
/// 获取所有
/// </summary>
/// <returns></returns>
public List<T> Get()
{
return _collection.Find(T => true).ToList();
} /// <summary>
/// 获取单个
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public T Get(string id)
{
return _collection.Find<T>(T => T.Id == id).FirstOrDefault();
} /// <summary>
/// 添加
/// </summary>
/// <param name="T"></param>
/// <returns></returns>
public T Add(T T)
{
_collection.InsertOne(T);
return T;
} /// <summary>
/// 更新
/// </summary>
/// <param name="id"></param>
/// <param name="TIn"></param>
public void Update(string id, T TIn)
{
_collection.ReplaceOne(T => T.Id == id, TIn);
} /// <summary>
/// 根据id删除
/// </summary>
/// <param name="id"></param>
public void Remove(string id)
{
_collection.DeleteOne(T => T.Id == id);
}
}
}
6、调用方式
StudentService _studentService = new StudentService();
public void Test()
{ Student _students = new Student();
_students.Name = "张三";
_students.Age = 10;
Course _course = new Course();
_course.StudentId = _students.Id;
_course.Name = "数学";
_students.Courses.Add(_course);
_studentService.Add(_students);
}
ASP.NET Core3.1 中使用MongoDB基本操作的更多相关文章
- Asp.Net Core3.x中使用Cookie
在Asp.Net中使用Cookie相对容易使用,Request和Response对象都提供了Cookies集合,要记住是从Response中存储,从Request中读取相应的cookie.Asp.Ne ...
- ASP.NET Core3.0 中的运行时编译
运行时编译 通过 Razor 文件的运行时编译补充生成时编译. 当 .cshtml 文件的内容发生更改时,ASP.NET Core MVC 将重新编译 Razor 文件 . 通过 Razor 文件的运 ...
- 探索Asp net core3中的 项目文件、Program.cs和通用host(译)
引言 原文地址 在这篇博客中我将探索一些关于Asp.net core 3.0应用的基础功能--.csproj 项目文件和Program源文件.我将会描述他们从asp.net core 2.X在默认模版 ...
- 在.NET Core中使用MongoDB明细教程(1):驱动基础及文档插入
MongoDB,被归类为NoSQL数据库,是一个以类JSON格式存储数据的面向文档的数据库系统.MongoDB在底层以名为bson的二进制编码格式表示JSON文档,MongoDB bson实现是轻量级 ...
- 在.NET Core中使用MongoDB明细教程(2):使用Filter语句检索文档
在上篇文章我们介绍了一些驱动程序相关的基础知识,以及如何将文档插入到集合中.在这篇文章中,我们将学习如何从数据库中检索文档. 作者:依乐祝 译文地址:https://www.cnblogs.com/y ...
- mongodb基本操作及存储图片显示方案
先介绍下mongodb的基本操作及使用 第一部:开启安全性验证 如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作,开户安全性检查, ...
- MongoDB 基本操作和聚合操作
一 . MongoDB 基本操作 基本操作可以简单分为查询.插入.更新.删除. 1 文档查询 作用 MySQL SQL MongoDB 所有记录 SELECT * FROM users; db ...
- 在MVC程序中使用MongoDB数据库
.net项目中混搭数据库 安装和部署 C#中使用MongoDB MongoDb与关系型数据库区别 开机自启动 关系型数据库和非关系型数据口可以混搭 MongoDB是一个高性能,开源,无模式的,基于分布 ...
- 【MongoDB详细使用教程】二、MongoDB基本操作
目录 数据类型 数据库操作 集合操作 数据操作 增 查 改 修改整行 修改指定字段的值 删 数据类型 MongoDB常见类型 说明 Object ID 文档ID String 字符串,最常用,必须是有 ...
- 采用最简单的方式在ASP.NET Core应用中实现认证、登录和注销
在安全领域,认证和授权是两个重要的主题.认证是安全体系的第一道屏障,是守护整个应用或者服务的第一道大门.当访问者请求进入的时候,认证体系通过验证对方的提供凭证确定其真实身份.认证体系只有在证实了访问者 ...
随机推荐
- Centos 7 部署Kubernetes集群 (基于cri-dockerd)
前言 基础描述 从 k8s 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能 ...
- 使用stream流对数据进行处理
1. 使用场景 本次使用是通过条件查询出所需要的多个字段后,对其进行处理(一个条件查询多个下拉框内容,并对每个下拉框内容封装对象,进行返回) 2. 代码 点击查看代码 //获取所有需要的数据 List ...
- 实验四 Web服务器2
任务详情 基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用Linux Socket实现: Web服务器的客户端服务器,提交程序运行截图 实现GET即可,请求,响应要符合HTTP协议规范 服务 ...
- 加密算法和hash
随着安全问题越来越被重视,公司也全面替换了HTTP为HTTPS.2015年iOS9的ATS到今年苹果更是放出话来,2017年全面支持HTTPS,不支持的App,在审核的时候可能会遇到麻烦.鉴于此,我有 ...
- 代替宝塔的webmin搭建
webmin官网 对于IBM的服务器,cpu架构不同于常见的x86或aarch64,部分第三方软件是无法正常安装的,比如大名鼎鼎的宝塔面板,对于像我一样的新手很不友好,这里分享一款代替宝塔的web管理 ...
- SAP S/4HANA Cloud的功能亮点以及大中型企业为何更倾向选择它
SAP-System Applications and Products,是一家来自德国的大型跨国软件公司,成立于1972年.作为全球企业管理和协同化商务解决方案供应商,世界第三大独立软件供应商和全球 ...
- K8S-PV和PVC
目录: emptyDir存储卷 hostPath存储卷 nfs共享存储卷 PVC和PV 生命周期 一个PV从创建到销毁的流程 静态 回收策略 NFS使用PV和PVC 动态 总结 容器磁盘上的文 ...
- docker简单实战
1.为ubuntu镜像添加ssh服务 1.1查看可用的ubuntu版本 1)访问ubuntu镜像库地址:https://hub.docker.com/search?q=ubuntu&type= ...
- 更改DBGrid 颜色技巧
1.根据条件更改某一单元格的颜色 [delphi] view plain copy procedure TMainFrm.First_DGDrawColumnCell(Sender: TObject; ...
- MCU构成及其运行原理
MCU构成及其运行原理 1. MCU概念 MCU,微控制单元(Microcontroller Unit) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中 ...