netcore 使用mongodb
docker run -d -p 27017:27017 --name mongo01 -v /docker/mongo/config:/data/configdb -v /docker/mongo/db:/data/db mongo
进入容器.
docker exec -it mongodb bash
创建用户
# 进入 admin 的数据库
use admin
# 创建管理员用户
db.createUser(
{
user: "admin",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
# 创建有可读写权限的用户. 对于一个特定的数据库, 比如'demo'
db.createUser({
user: 'test',
pwd: '123456',
roles: [{role: "read", db: "demo"}]
})
新建项目Contact.Api 实现一个简易的联系人列表
nuget引用包MongoDB.Driver
添加配置文件
"ConnectionStrings": {
"ConnectionString": "mongodb://localhost:27017",
"Database": "Finbook_Contacts",
"LogCollection": "Finbook_Contacts_log"
}
添加数据库配置
/// <summary>
/// 数据库配置信息
/// </summary>
public class DBSettings
{
/// <summary>
/// mongodb connectionstring
/// </summary>
public string ConnectionString { get; set; }
/// <summary>
/// mongodb database
/// </summary>
public string Database { get; set; }
/// <summary>
/// 日志collection
/// </summary>
public string LogCollection { get; set; }
}
添加db上下文
public class ContactContext
{
private IMongoDatabase _dataBase;
private readonly string _logCollection;
public ContactContext(IOptions<DBSettings> settings)
{
var client = new MongoClient(settings.Value.ConnectionString);
if (client != null)
_dataBase = client.GetDatabase(settings.Value.Database);
_logCollection = settings.Value.LogCollection;
} private void CheckAddCreateCollection(string collectionName)
{
var collectionList = _dataBase.ListCollections().ToList();
var collectionNames = new List<string>();
//获得所有集合的名称
collectionList.ForEach(x => { collectionNames.Add(x["name"].AsString); });
//如果没有这个集合就创建一个 (相当于创建一个表)
if (!collectionNames.Contains(collectionName))
{
_dataBase.CreateCollection(collectionName);
}
} public IMongoCollection<LogEventData> LogEventDatas
{
get
{
CheckAddCreateCollection(_logCollection);
return _dataBase.GetCollection<LogEventData>(_logCollection);
}
}
public IMongoCollection<ContactBook> ContactBooks
{
get
{
CheckAddCreateCollection("ContactBooks");
return _dataBase.GetCollection<ContactBook>("ContactBooks");
}
}
public IMongoCollection<T> GetCollection<T>(string name) where T : class
{
CheckAddCreateCollection(name);
return _dataBase.GetCollection<T>(name);
}
public IMongoCollection<ContactApplyRequest>ContactApplyRequests
{
get
{
CheckAddCreateCollection("ContactApplyRequests");
return _dataBase.GetCollection<ContactApplyRequest>("ContactApplyRequests");
}
}
}
netcore 使用mongodb的更多相关文章
- 基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具(Mongo2Es)
基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具 支持一对一,一对多,多对一和多对多的数据传输方式. 一对一 - 一个mongodb的collection对应一 ...
- MongoDB入门及 c# .netcore客户端MongoDB.Driver使用
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系 ...
- .NetCore操作MongDB简要代码实现
.NetCore操作MongoDB简要代码实现 在接触过的大多数使用mongodb的情景中,基本上都是用mongodb来存储日志的. mongodb是作为一种文档型的数据库,在管理日志文档上确实比较适 ...
- Docker--部署mongodb+.netcore+nginx
前言 公司租用的阿里云的服务器,每年会更换一次,很麻烦,还容易出问题,想会不会有更方便的方式来迁移服务器,就这样接触到了docker. 参考网上的一些资料,自己琢磨了一段时间,记录下docker的部署 ...
- .netcore mongodb 分页+模糊查询+多条件查询
.netcore MongoDB.Driver 版本才2.8 与aspnet差距太大,网上找很多资料没有现成的代码. public override async Task<PagerList&l ...
- MongoDB netcore
mongodb.driver mongodb.driver.core url: http://dl.mongodb.org/dl/win32/x86_64 ********************* ...
- Linux~centos上安装.netcore,HelloWorld归来!
对于跨平台的.netCore来说,让它的程序运行在Linux系统上已经成为必然,也是一种趋势,毕竟我们的很多服务都放在linux服务器上(redis,mongodb,myql,fastDFS,luce ...
- .NetCore~Json代替了Xml
回到目录 在进行.netCore时代后,最大的变化就是对Json的使用更加主动,基本代替了之前的XML,像一些用户配置,系统配置,包包配置等都是基于json的,而web.config这个文件基本变成一 ...
- 物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线
正所谓天下大势,不跟风不行.你不跨平台,很low嘛.java说:你们能跨嘛,跨给我看看.C#说:不要强人所难嘛.java说:能部署在云上吗?docker?微服务?C#说:不要强人所难嘛.java说:你 ...
- 一个能够在Asp.Net和Asp.NetCore之间能够互相通讯的Rpc
一.特性 1.跨平台 2.提供负载均衡算法 3.支持ZK服务协调 4.提供了JSON.BinarySerializer.还有自定义的序列化方式 5.客户端提供Socket连接池,以便于快速交互,防止类 ...
随机推荐
- redmine 用户没有状态内容
- C/C++ GOTO妙用
目录 GOTO 语句 跳出多层循环 循环首次部分跳过 GOTO 语句 C/C++ 的 goto 语句用来在一个函数内进行任意跳转,用起来也是很方便.示例如下: int a() { int x = 0, ...
- 微信小程序云函数
小程序开发云环境设置 注意事项 每一个云函数都是一个独立的 nodeJS 项目.所以每个云函数下都有 package.json 文件 错误 前端操作数据库 1 指引 2 新建集合 3 新增记录 4 查 ...
- 数字先锋 | 打造专属AI大脑,天翼云助力重庆理工大学开启智慧校园新篇!
从在线课程的蓬勃兴起,到远程教育的逐渐普及,再到智能教学工具的广泛应用--人工智能.大数据.云计算等前沿技术迅速发展的当下,科技正以前所未有的深度和广度重塑教育领域,促使教育各个层面发生深刻变革.师生 ...
- 【SpringMVC】处理模型数据
处理模型数据 Spring MVC 提供了以下几种途径输出模型数据: ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据 Map 及 Mo ...
- AspNetCore Json序列化设置
AspNetCore 中的Json序列化处理已经默认使用Newtonsoft.Json库了... 比如像MVC中: public I 不过使用过程中会发现一些问题,其实这算默认设置吧: Json序列化 ...
- 线性判别分析(LDA):降维与分类的完美结合
在机器学习领域,线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的算法,它在降维和分类任务中都表现出色. LDA通过寻找特征空间中能够最大化类间方差和最小 ...
- zk基础—5.Curator的使用与剖析
大纲 1.基于Curator进行基本的zk数据操作 2.基于Curator实现集群元数据管理 3.基于Curator实现HA主备自动切换 4.基于Curator实现Leader选举 5.基于Curat ...
- Docker安装及使用,Docker 安装MySQL、安装Tomcat、安装RabbitMQ
CentOS7安装Docker Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经 ...
- Greenplum优化总结
Greenplum优化总结 GP优化需要了解清理缓存.性能监控.执行计划分析等知识.优化主要包含以下四方面: 表.字段,SQL,GP配置.服务器配置,硬件及节点资源. 一. 清理缓存: #!/usr/ ...