当前位置: 首页 > news >正文

net6中使用MongoDB

目录

一、MongoDB是什么?

二、使用步骤

1.安装驱动

2.设置连接字符串、配置类

3.建立实体类

4.服务层

5.在Program添加服务

6.在Controller注入服务

总结


一、MongoDB是什么?

MongoDB 是一个开源的、可扩展的、跨平台的、面向文档的非关系型数据库,它由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

二、使用步骤

1.安装驱动

代码如下:

install-package MongoDB.Driver

2.设置连接字符串、配置类

在appsettings.json中设置mongodb服务器地址、数据库

代码如下(示例):

 "MongoDbSetting": {"Connection": "mongodb://localhost:27017","Database": "Test"}

建立相应的配置类

 public class MongoDbSetting:IMongoDbSetting{public string Connection { get; set; }public string Database { get; set; }}public interface IMongoDbSetting{public string Connection { get; set; }public string Database { get; set; }}

3.建立实体类

代码如下(示例):

   public class Book{[BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }public string AuthorName { get; set; }public float Price { get; set; }public DateTime PubTime { get; set; }public string Title { get; set; }}

4.服务层

代码如下(示例):

 public class BookService{private readonly IMongoCollection<Book> _mongDb;public BookService(IMongoDbSetting setting){var client = new MongoClient(setting.Connection);var database = client.GetDatabase(setting.Database);_mongDb = database.GetCollection<Book>(nameof(Book));}/// <summary>/// 新增/// </summary>/// <param name="model"></param>/// <returns></returns>public Book Insert(Book model){_mongDb.InsertOne(model);return model;}/// <summary>/// 编辑/// </summary>/// <param name="id"></param>/// <param name="model"></param>public void Update(Book model){_mongDb.ReplaceOne(m => m.Id == model.Id, model);}/// <summary>/// 删除/// </summary>/// <param name="model"></param>public void Delete(Book model){_mongDb.DeleteOne(m => m.Id == model.Id);}/// <summary>/// 获取某一个对象/// </summary>/// <param name="id"></param>/// <returns></returns>public Book Get(string id){return _mongDb.Find<Book>(book => book.Id == id).FirstOrDefault();}/// <summary>/// 查询/// </summary>/// <param name="PageIndex"></param>/// <param name="PageSize"></param>/// <returns></returns>public List<Book> GetPageList(int PageIndex = 1, int PageSize = 10){//设置排序字段var sort = Builders<Book>.Sort.Descending(it => it.PubTime);return _mongDb.Find<Book>(b => true).Sort(sort).Skip((PageIndex - 1) * PageSize).Limit(PageSize).ToList();}}

5.在Program添加服务

代码如下(示例):

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using MyApI;var builder = WebApplication.CreateBuilder(args);// Add services to the container.#region 配置mongodb 
builder.Services.Configure<MongoDbSetting>(builder.Configuration.GetSection(nameof(MongoDbSetting)));
builder.Services.AddSingleton<IMongoDbSetting>(sp => sp.GetRequiredService<IOptions<MongoDbSetting>>().Value);
builder.Services.AddSingleton<BookService>();
#endregion builder.Services.Configure<ApiBehaviorOptions>((o) =>
{o.SuppressModelStateInvalidFilter = true;
});
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();var app = builder.Build();// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI();
}app.UseAuthorization();app.MapControllers();app.Run();

6.在Controller注入服务

 注入服务有三种方式(构造函数、属性、方法)通常一般选择构造函数的方式注入

在BookController中注入BookService 服务

代码如下(示例):

[Route("api/[controller]/[action]")][ApiController]public class BookController : ControllerBase{private readonly BookService  _bookService;public BookController(BookService bookService) {_bookService=bookService;}     [HttpPost]public ActionResult Insert(Book model){return new JsonResult(_bookService.Insert(model));}[HttpPost]public ActionResult Update(Book model){_bookService.Update(model);return NoContent();}[HttpPost]public ActionResult Delete(Book model){_bookService.Delete(model);return NoContent();}[HttpGet]public ActionResult Get(string id){return new JsonResult(_bookService.Get(id));}[HttpGet]public ActionResult GetPageList(int PageIndex = 1, int PageSize = 10){return new JsonResult(_bookService.GetPageList(PageIndex, PageSize));}}

总结


以上是我在.net core 对MongoDB数据库简单的使用

更多的使用查看官方文档MongoDB C# Driver — C#/.NET

http://www.lryc.cn/news/257714.html

相关文章:

  • vue中yarn install超时问题
  • vue3 引入 markdown编辑器
  • 算法----K 和数对的最大数目
  • RocketMQ-源码架构
  • 14-1、IO流
  • 每日一道算法题 1
  • 【网络奇缘】- 计算机网络|深入学习物理层|网络安全
  • ❀expect命令运用于bash❀
  • 2023年团体程序设计天梯赛——总决赛题
  • K8S 工具收集
  • 自动化测试之读取配置文件
  • 如何实现分布式调用跟踪?
  • 接口的性能优化(从前端、后端、数据库三个角度分析)
  • 区块链扩容问题研究【06】
  • 英语论文写作常用词汇积累
  • redis集群(cluster)笔记
  • css 元素前后添加图标(::before 和 ::after 的妙用)
  • C++ 设计模式 Forward Declaration Pimpl
  • 【uniapp】小程序开发8:滚动组件scroll-view
  • Java王者荣耀火柴人
  • 1.鸿蒙应用程序开发app_hap开发环境搭建
  • JDK多版本集成 Jacoco 配置指南
  • 容器及容器调度(云)
  • 实验七 子网的划分
  • Proteus仿真--射击小游戏仿真设计
  • docker的资源控制:
  • Leo赠书活动-13期 【以企业架构为中心的SABOE数字化转型五环法】文末送书
  • 【人工智能 | 知识表示方法】状态空间法 语义网络,良好的知识表示是解题的关键!(笔记总结系列)
  • 华清远见嵌入式学习——QT——作业1
  • MYSQL练习创建存储函数和存储过程