# MongoDBHelper **Repository Path**: gaoqiang215000/MongoDBHelper ## Basic Information - **Project Name**: MongoDBHelper - **Description**: MongoDB工具 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-25 - **Last Updated**: 2023-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MongoDBHelper #### 介绍 MongoDB工具 #### 软件架构 软件架构说明 #### 工具注意点 1、部分函数要求模型需要字段有主键比如字段带有[BsonId]特性或者字段里包含_id; 2、由于官方驱动 有一个单独处理附件类驱动,所以本项目封装时按照数据集合(DataContext) 和 附件集合(FileContext); 3、DataContext封装范围是某个数据库,FileContext封装范围是某个数据库下的某个文件集合; #### 使用说明 一、依赖注入方式: 1. 只连接一个数据库时: 可以直接使用自带的Context类,数据集合使用DataContext,附件集合使用FileContext,在Program.cs文件里使用 ``` builder.Services.AddMongoDataContext(p => { p.ConnectionString = "mongodb://127.0.0.1:27017"; p.DatabaseName = "TempMongo"; }); ``` 只连接一个文件集合时: ``` builder.Services.AddMongoFileContext(p => { p.ConnectionString = "mongodb://127.0.0.1:27017"; p.DatabaseName = "TempMongo"; p.CollectionName = "Files"; }); ``` 然后可以在控制器内使用构造注入,比如: ``` private readonly DataContext _db; private readonly ILogger _logger; public WeatherForecastController(ILogger logger, DataContext db) { _logger = logger; _db = db; } ``` 2. 如果连接多个数据库时: 可以自定义上下文类并集成DataContext或者FileContext,例如: ``` public class DbContext : DataContext { /// /// 构造函数 /// public DbContext() { } /// /// 构造函数 /// /// public DbContext(Action config) : base(config) { } } ``` ,在Program.cs文件里使用 ``` builder.Services.AddMongoDataContext(p => { p.ConnectionString = "mongodb://127.0.0.1:27017"; p.DatabaseName = "TempMongo"; }); ``` 然后可以在控制器内使用构造注入,比如: ``` private readonly DbContext_db; private readonly ILogger _logger; public WeatherForecastController(ILogger logger, DbContext db) { _logger = logger; _db = db; } ``` 二、普通new实例: ``` DataContext _db=new DataContext (p => { p.ConnectionString = "mongodb://127.0.0.1:27017"; p.DatabaseName = "TempMongo"; }) ```