C# / .Net Core 访问MongoDb库
话不多说直接上代码
连接字符串:
{
"AppSettings": {
"mongodb": "mongodb://用户名:密码@IP地址:端口号"
}
}
主体代码:
using ABCDEFG.Config;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Text; namespace Mongodb
{
public class MongoContext
{
public MongoContext()
{
Client = new MongoClient(ABCDEFG.GetAppSetting("mongodb"));
} public MongoContext(string connectionName)
{
Client = new MongoClient(MengTConfig.GetAppSetting(connectionName));
} private MongoClient Client { get; set; } private IMongoDatabase DataBase { get => Client.GetDatabase("MengTLog"); } public IMongoCollection<T> DbSet<T>() where T : IMongoModel => DataBase.GetCollection<T>("MengTLog.Logger"); } public static class MongoExtend
{
public static void Add<T>(this IMongoCollection<T> collenction, T Model) where T : IMongoModel
=> collenction.InsertOne(Model); public static void AddList<T>(this IMongoCollection<T> collenction, List<T> Model) where T : IMongoModel
=> collenction.InsertMany(Model); /// <summary>
/// 查找第一个
/// </summary>
public static T FirstOrDefault<T>(this IMongoCollection<T> collenction,Expression<Func<T, bool>> expression) where T : IMongoModel
{
if (expression == null) { throw new ArgumentNullException("参数无效"); }
return collenction.Find(expression).FirstOrDefault();
} /// <summary>
/// 查找符合数据列表
/// </summary>
public static List<T> FindToList<T>(this IMongoCollection<T> collenction, Expression<Func<T, bool>> expression) where T : IMongoModel
{
if (expression == null) { throw new ArgumentNullException("参数无效"); }
return collenction.Find(expression).ToList();
} /// <summary>
/// 删除全部匹配数据
/// </summary>
public static void Delete<T>(this IMongoCollection<T> collenction, Expression<Func<T, bool>> expression) where T : IMongoModel
{
if (expression == null) { throw new ArgumentNullException("参数无效"); }
collenction.DeleteManyAsync(expression);
} /// <summary>
/// 删除一个
/// </summary>
public static void DeleteOne<T>(this IMongoCollection<T> collenction, Expression<Func<T, bool>> expression) where T : IMongoModel
{
if (expression == null) { throw new ArgumentNullException("参数无效"); }
collenction.DeleteOneAsync(expression);
}
}
}
IMongoModel:
using MongoDB.Bson;
using System;
using System.Collections.Generic;
using System.Text; namespace Mongodb
{
public partial class IMongoModel
{
/// <summary>
/// 基础ID
/// </summary>
public ObjectId _id { get; set; }
}
}
值得注意的是:需引用MongoDB.BSon与MongoDB.Driver
VS2017若在引用包后,还是无法找到命名空间,重启VS即可。
ABCDEFG.GetAppSetting("mongodb"));读取配置文件
C# / .Net Core 访问MongoDb库的更多相关文章
- net Core 通过 Ef Core 访问、管理Mysql
net Core 通过 Ef Core 访问.管理Mysql 本文地址:http://www.cnblogs.com/likeli/p/5910524.html 环境 dotnet Core版本:1. ...
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...
- 使用Entity Framework Core访问数据库(DB2篇)
前言 上一篇讲了一些EF Core访问Oracle的坑.(感兴趣请移步:使用Entity Framework Core访问数据库(Oracle篇)) 这篇主要讲一下关于EF Core访问DB2的一揽子 ...
- 使用Entity Framework Core访问数据库(Oracle篇)
前言 哇..看看时间 真的很久很久没写博客了 将近一年了. 最近一直在忙各种家中事务和公司的新框架 终于抽出时间来更新一波了. 本篇主要讲一下关于Entity Framework Core访问ora ...
- 使用spring boot访问mongodb数据库
一. spring boot中传参的方法 1.自动化配置 spring Boot 对于开发人员最大的好处在于可以对 Spring 应用进行自动配置.Spring Boot 会根据应用中声明的第三方依赖 ...
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...
- ImageSharp .NET Core跨平台图形处理库
ImageSharp 是支持.NET Core跨平台图形处理库,ImageSharp是ImageProcessor 的.NET Core跨平台实现. ImageSharp 支持如下操作: 调整大小,裁 ...
- Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库
前面为JSTL中的常用EL函数,后面的为具体演示实例! JSTL简介: JSTL(Java Standard Tag Library) –Java标准标签库. SUN公司制定的一套标准标签库的规范. ...
- VisualSVN Server安装后,TortoiseSVN远程无法访问版本库。
修正!重演了一遍,发现总结有误,重新整理下.首先访问版本库的路径不清楚的话可以在VisualSVN Server的版本库上右键“Copy URL to Clipboard”.访问版本库失败的几种情况: ...
随机推荐
- PS相关技术
PS相关长时间不用就忘记了,做个笔记,记录下来 (1)复制图层,可以将图层复制到另外的图层里去,这样,多个图层就可以编辑了 (2)通过建立选区,可以选择右键,通过剪切的图层,通过复制的图层将图片抠出来 ...
- java求1+1/2+1/3+1/4+......+1/n的值
总结:与上一篇的不同是在main函数里.所以n的值是需要填写的.而不是未知值还是运用不灵活. package com.c2; //1+1/2+1/3+....+1/n的值 public class D ...
- 1110 Complete Binary Tree
1110 Complete Binary Tree (25)(25 分) Given a tree, you are supposed to tell if it is a complete bina ...
- PHP读取文件夹数据,并分页
protected function read_all ($dir){ // 确保目录有权限进入 if(!is_dir($dir)) return false; $handle = opendir($ ...
- 小程序mina框架与配置
小程序是采用MINA框架 <!--demo.wxml--> <view> Hello {{name}}</view> <button bindtap=&quo ...
- 25 mysql怎么保证高可用
上一篇介绍了binlog的基本内容,在主备关系中,是每个备库接收主库的binlog并执行. 正常情况下,只要主库执行更新生成的所有的binlog,都可以传到备库并被正确执行,备库就能跟主库一致的状态, ...
- MySQL优化方法论
MySQL优化方法 主机 操作系统 数据库 应用 MySQL优化理论 吞吐率(Throughput) VS 延时(Latency) 吞吐率: 我们一般使用单位时间内服务器处理的请求数来描述其并发处理能 ...
- 16-EasyNetQ之自动订阅者
EasyNetQ v0.7.1.30版本有了一个简单AutoSubscriber.你能够使用它很容易的去扫描指定程序集中实现了IConsume 或 IConsumeAsync接口的类,然后这个自动订阅 ...
- 局域网内的一些计算机可以ping通 有些ping不同
如何查看.添加.修改.删除电脑内部路由_百度经验https://jingyan.baidu.com/article/77b8dc7fc611626174eab6cb.html
- SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍
视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...