mongodb是nosql数据库吗 5 NoSQL | MongoDB入门实战教程


mongodb是nosql数据库吗 5 NoSQL | MongoDB入门实战教程

文章插图
| 总结/Edison Zhou
前面我们学习了MongoDB的基本查询命令操作 , 作为后端开发的我们大部分场景都是在应用程序中和MongoDB进行交互 , 因此本篇我们来学习一下如何在ASP.NET Core中集成MongoDB 。
1 配置MongoDB首先 , 请参照之前的文章安装部署好一个MongoDB节点或集群 。
然后 , 手动创建一个数据库BookStoreDB 和 一个集合 Books 。
use BookStoreDBdb.CreateCollection('Books')最后 , 预先插入两条测试数据:
db.Books.insertMany([{'Name':'Design Patterns','Price':54.93,'Category':'Computers','Author':'Ralph Johnson', 'CreatedDate':ISODate("2012-10-02T07:58:51Z"),'UpdatedDate':ISODate("2012-10-02T07:58:51Z")}, {'Name':'Clean Code','Price':43.15,'Category':'Computers','Author':'Robert C. Martin','CreatedDate':ISODate("2012-10-02T07:58:51Z"),'UpdatedDate':ISODate("2012-10-02T07:58:51Z")}])2 配置ASP.NET Core项目创建WebAPI项目
建立一个ASP.NET Core 或 ASP.NET 5的WebAPI项目 。
通过NuGet安装MongoDB.Driver:
PM>Install-Package MongoDB.Driver目前MongoDB.Driver最新版本为2.12.4(2021年6月5日发布) 。一般来说 , 我们操作MongoDB都会选择这个官方的Driver 。
添加实体模型
在WebAPI项目中添加Models目录 , 并增加 Book 实体类:
public class Book : MongoDocBase{[BsonElement("Name")]public string BookName { get; set; }public decimal Price { get; set; }public string Category { get; set; }public string Author { get; set; }}public class MongoDocBase{[BsonId][BsonRepresentation(BsonType.ObjectId)]public string Id { get; set; }[BsonDateTimeOptions(Kind = DateTimeKind.Local)]public DateTime? CreatedDate { get; set; }[BsonDateTimeOptions(Kind = DateTimeKind.Local)]public DateTime? UpdatedDate { get; set; }}需要注意的是:MongoDB存储时间类型数据时 , 都是先转换为UTC时间 , 然后存储到数据库中 。当我们取出存储的时间时 , 就会出现时差的问题 。因此 , 一般我们会给文档中的日期类型加上如下所示的注解 , 将它转换为本地时间传输:
[BsonDateTimeOptions(Kind = DateTimeKind.Local)]在实际应用中 , 我们会给实体类创建一些DTO , 然后在应用层进行DTO向DO的转换 。因此 , 这里我们假设会进行 创建Book 和 修改Book 的操作 , 创建两个DTO类:
(1)CreateBookDto
public class CreateBookDto{public string BookName { get; set; }public decimal Price { get; set; }public string Category { get; set; }public string Author { get; set; }[JsonIgnore]public DateTime CreatedDate { get; set; } = DateTime.Now;}(2)UpdateBookDto
public class UpdateBookDto : CreateBookDto{public string Id { get; set; }[JsonIgnore]public DateTime UpdatedDate { get; set; } = DateTime.Now;}在本示例中 , 使用AutoMapper进行DTO和DO之间的互转 , 因此 , 安装 AutoMapper 及其 扩展:
PM>Install-Package AutoMapperPM>Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection创建映射规则配置:
public class MappingConfigs : Profile{public MappingConfigs(){CreateMap<CreateBookDto, Book>().ReverseMap();CreateMap<UpdateBookDto, Book>().ForMember(dest => dest.CreatedDate, opt => opt.Ignore()).ReverseMap();}}添加配置模型
首先 , 在appSettings.json中添加以下数据库配置:


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: