查增改删

链接字符串 MongoDB超管+(admin) 单独库用户不加

static string mongoR = string.Format("mongodb://{0}(admin):{1}@{2}:{3}", "MongoRead", "123456", "127.0.0.1", 27017);

 using System;
using System.Collections.Generic;
using System.Linq;
using MongoDB.Bson;
using MongoDB.Driver; namespace MongoTest
{
public class EMongoModel
{
/// <summary>
/// 连接字符串
/// </summary>
public string ConnStr { get; set; }
/// <summary>
/// 数据库名称
/// </summary>
public string DBName { get; set; }
/// <summary>
/// 数据库表名称
/// </summary>
public string CollName { get; set; }
}
public class EMongo
{
#region 查询
public static T Select<T>(EMongoModel mongoM, IMongoQuery query = null) where T : class,new()
{
T t = null;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
t = dbCollection.FindOneAs<T>(query);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return t;
}
public static List<T> SelectList<T>(EMongoModel mongoM, IMongoQuery query = null, IMongoSortBy sort = null, params string[] fields) where T : class,new()
{
List<T> ls = null;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
MongoCursor<T> cursor = null;
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
cursor = dbCollection.FindAs<T>(query);
if (sort != null) { cursor.SetSortOrder(sort); }
if (fields != null) { cursor.SetFields(fields); }
}
ls = cursor.ToList<T>();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ls;
}
public static List<T> SelectListPage<T>(EMongoModel mongoM, int pageIndex, int pageSize, out long rowCount, IMongoQuery query = null, IMongoSortBy sort = null, params string[] fields) where T : class,new()
{
List<T> ls = null;
rowCount = ;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
MongoCursor<T> cursor = null;
int startIndex = (pageIndex - ) * pageSize;
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
cursor = dbCollection.FindAs<T>(query);
cursor.SetSkip(startIndex).SetLimit(pageSize);
rowCount = cursor.Count();
if (sort != null) { cursor.SetSortOrder(sort); }
if (fields != null && fields.Length > ) { cursor.SetFields(fields); }
}
ls = cursor.ToList<T>();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ls;
}
#endregion #region 添加
public static bool Insert<T>(EMongoModel mongoM, T model) where T : class,new()
{
bool ret = false;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
ret = dbCollection.Insert(model).Ok;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ret;
}
public static bool Insert<T>(EMongoModel mongoM, List<T> modelLs) where T : class,new()
{
bool ret = false;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
IEnumerable<WriteConcernResult> result = null;
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
result = dbCollection.InsertBatch(modelLs);
}
ret = result.Where(x => x.Ok).Count() > ;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ret;
}
#endregion #region 修改
public static bool Update<T>(EMongoModel mongoM, T model) where T : class,new()
{
bool ret = false;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
ret = dbCollection.Save<T>(model).Ok;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ret;
}
public static bool Update(EMongoModel mongoM, IMongoUpdate update, IMongoQuery query = null)
{
bool ret = false;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
ret = dbCollection.Update(query, update, UpdateFlags.Multi).Ok;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ret;
}
#endregion #region 删除
public static bool Delete(EMongoModel mongoM, IMongoQuery query)
{
bool ret = false;
try
{
MongoServer server = new MongoClient(mongoM.ConnStr).GetServer();
MongoDatabase db = server.GetDatabase(mongoM.DBName);
using (server.RequestStart(db))
{
MongoCollection<BsonDocument> dbCollection = db.GetCollection<BsonDocument>(mongoM.CollName);//获取指定的表集合
ret = dbCollection.Remove(query).Ok;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return ret;
}
#endregion
}
}

MongoDB-C#驱动帮助的更多相关文章

  1. (转载)MongoDB C#驱动中Query几个方法

    MongoDB C#驱动中Query几个方法 Query.All("name", "a", "b");//通过多个元素来匹配数组 Query ...

  2. 使用VS2010编译MongoDB C++驱动详解

    最近为了解决IM消息记录的高速度写入.多文档类型支持的需求,决定使用MongoDB来解决. 考虑到MongoDB对VS版本要求较高,与我现有的VS版本不兼容,在leveldb.ssdb.redis.h ...

  3. MongoDB C#驱动:

    MongoDB C#驱动: http://xiaosheng.me/2016/09/15/article24 http://www.cnblogs.com/wuhuacong/p/5098348.ht ...

  4. MongoDB C#驱动

    烟波钓徒 MongoDB C#驱动 http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial 笔记 首先下载驱动.驱动有两个文件 Mongo ...

  5. [转载]MongoDB C# 驱动教程

    本教程基于C#驱动 v1.6.x . Api 文档见此处: http://api.mongodb.org/csharp/current/. 简介 本教程介绍由10gen支持的,用于MongoDB的C# ...

  6. MongoDB操作(1)—MongoDB java驱动核心层次结构及操作流程

    MongoDB之java驱动学习 预备: 本地运行MongoDB采用默认端口20717: 安装MongoDB驱动: 以下关键步骤. 核心层次结构或步骤: 创建连接池:MongoClient实例. 对于 ...

  7. MongoDB C# 驱动教程

    C# 驱动版本 v1.6.x 本教程基于C#驱动 v1.6.x . Api 文档见此处: http://api.mongodb.org/csharp/current/. 简介 本教程介绍由10gen支 ...

  8. [转]MongoDB c++驱动安装与使用

    安装 获取源码:git clone https://github.com/mongodb/mongo-cxx-driver.git,解压 安装编译工具scons:yum install -y scon ...

  9. [原创]MongoDB C++ 驱动部分问题解决方案(MongoDB C++ Driver)

    本文为我长时间开发以及修改MongoDB C++ Driver时的一些问题和解决方案.目前本文所介绍的相关引擎也已经发布闭源版本,请自行下载 库版本以及相关位置:http://code.google. ...

  10. MongoDb C# 驱动操作示例

    c#操作mongo数据库 驱动采用http://www.oschina.net/p/mongo-csharp-driver C#驱动的基本数据库连接,增删改查操作 //定义对象 public clas ...

随机推荐

  1. 15个JavaScript本地存储技术的函数库和工具

    当构建更复杂的JavaScript应用程序运行在用户的浏览器是非常有用的,它可以在浏览器中存储信息,这样的信息可以被共享在不同的页面,浏览会话. 在最近的过去,这将有可能只被cookies文本文件保存 ...

  2. visio二次开发——图纸解析之线段

    多写博客,其实还是蛮好的习惯的,当初大学的时候导师就叫我写,但是就是懒,大学的时候,谁不是魔兽或者LOL呢,是吧,哈哈哈. 好了,接着上一篇visio二次开发——图纸解析,我继续写. 摘要: (转发请 ...

  3. 大熊君大话NodeJS之 ------ Connect中间件第二季(源码分析)

    一,开篇分析 大家好,大熊君又回来了,今天这篇文章主要是对"Connect"中间件以及相关辅助中间件,做一个源码分析系列,我想上一篇文章大家也看了, 介绍了使用方式及用途,而这篇也 ...

  4. 使用excel计算指数平滑和移动平均

      指数平滑法 原数数据如下: 点击数据——数据分析 选择指数平滑 最一次平滑 由于我们选择的区域是B1:B22,第一个单元格“钢产量”,被当做标志,所以我们应该勾选标志.当我们勾选了标志后,列中的第 ...

  5. H5播放器

    <!DOCTYPE html>  <html>  <body>  <div style="text-align:center">  ...

  6. 《征服 C 指针》摘录3:数组 与 指针

    一.数组 和 指针 的微妙关系 数组 是指将固定个数.相同类型的变量排列起来的对象. 正如之前说明的那样,给指针加 N,指针前进“当前指针指向的变量类型的长度 X N”. 因此,给指向数组的某个元素的 ...

  7. H5案例分享:移动端滑屏 touch事件

    移动端滑屏 touch事件 移动端触屏滑动的效果的效果在电子设备上已经被应用的越来越广泛,类似于PC端的图片轮播,但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch ...

  8. MySQL SQL优化

    一.优化数据库的一般步骤: (A) 通过 show status 命令了解各种SQL的执行频率. (B) 定位执行效率较低的SQL语句,方法两种: 事后查询定位:慢查询日志:--log-slow-qu ...

  9. js倒计时代码 适合于促销-倒计时代码

    <div class="tiem_price clearfix fonts" style="margin-top:15px;"> <div c ...

  10. Linux 下测试串口的命令microcom

    昨天应为要测试主板上的串口,查了一下,可以使用microcom 这条命令进行测试. 命令使用方法很简单: Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPE ...