csharp实现MongoDB的增删改查


一直在找个csharp的Mongodb帮助文档,官网的说的太少了。可惜找不到。
学习别人的代码,复制过来。

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Linq;

usingMongoDB.Bson;
usingMongoDB.Driver;
usingMongoDB.Attributes;
usingMongoDB.Configuration;
usingSystem.Linq.Expressions;
usingMongoDB;
usingMongoDB.Linq;

namespace showPicture1
{
classMongodbHelper
{
string connectionString =string.Empty;
string databaseName =string.Empty;
string collectionName =string.Empty;
//static MongodbHelper<T> mongodb;

#region 初始化操作
/// <summary>
/// 初始化操作
/// </summary>
publicMongodbHelper()
{
connectionString ="mongodb://localhost";
//创建数据连接
databaseName ="shopex";
//获取指定数据库
collectionName ="person";
//获取表
}
#endregion

#region 实现linq查询的映射配置
/// <summary>
/// 实现linq查询的映射配置
/// </summary>
publicMongoConfiguration configuration
{
get
{
var config =newMongoConfigurationBuilder();
config.Mapping(mapping =>
{
mapping.DefaultProfile(profile =>
{
profile.SubClassesAre(t => t.IsSubclassOf(typeof(T)));
});
mapping.Map<T>();
mapping.Map<T>();
});
config.ConnectionString(connectionString);
return config.BuildConfiguration();
}
}
#endregion

#region 插入操作
/// <summary>
/// 插入操作
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
publicvoidInsert(T t)
{
using(Mongo mongo =newMongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
collection.Insert(t,true);
mongo.Disconnect();
}
catch(Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion

#region 更新操作
/// <summary>
/// 更新操作
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
publicvoidUpdate(T t,Expression<Func<T,bool>> func)
{
using(Mongo mongo =newMongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
collection.Update<T>(t, func,true);
mongo.Disconnect();
}
catch(Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion

#region 获取集合
/// <summary>
///获取集合
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
publicList<T>List(int pageIndex,int pageSize,Expression<Func<T,bool>> func,outint pageCount)
{
pageCount =0;
using(Mongo mongo =newMongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
pageCount =Convert.ToInt32(collection.Count());
var personList = collection.Linq().Where(func).Skip(pageSize *(pageIndex -1))
.Take(pageSize).Select(i => i).ToList();
mongo.Disconnect();
return personList;
}
catch(Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion

#region 读取单条记录
/// <summary>
///读取单条记录
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
public T Single(Expression<Func<T,bool>> func)
{
using(Mongo mongo =newMongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
var single = collection.Linq().FirstOrDefault(func);
mongo.Disconnect();
return single;
}
catch(Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion

#region 删除操作
/// <summary>
/// 删除操作
/// </summary>
/// <param name="person"></param>
/// <returns></returns>
publicvoidDelete(Expression<Func<T,bool>> func)
{
using(Mongo mongo =newMongo(configuration))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(databaseName);
var collection = db.GetCollection<T>(collectionName);
//这个地方要注意,一定要加上T参数,否则会当作object类型处理
//导致删除失败
collection.Remove<T>(func);
mongo.Disconnect();
}
catch(Exception)
{
mongo.Disconnect();
throw;
}
}
}
#endregion


}

优质内容筛选与推荐>>
1、计算机数据结构之——什么是艺术品?
2、结构之法-字符串及链表的探索-编程之美-第3章
3、磁盘与内存
4、机器学习
5、asp.net5 操作Cookie


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn