设为首页 加入收藏

TOP

C#操作MongoDB帮助类(一)
2015-11-21 03:26:57 来源: 作者: 【 】 浏览:36
Tags:操作 MongoDB 帮助
利用MongoDB for C# Driver编写访问MongoDB 数据库的帮助类。
?
1、创建数据库连接
?
/// 
/// 获取数据库实例对象
/// 
/// 数据库连接串
/// 数据库名称
/// 数据库实例对象
private static MongoDatabase GetDatabase(string connectionString, string dbName)
{
var server = MongoServer.Create(connectionString);
return server.GetDatabase(dbName);
}

?

?
2、新增数据
?
/// 
/// 插入一条记录
/// 
/// 数据类型
/// 数据库连接串
/// 数据名称
/// 集合名称
/// 数据对象
public static void Insert(string connectionString, string dbName, string collectionName, T model) where T : EntityBase
{
if (model == null)
{
throw new ArgumentNullException("model", "待插入数据不能为空");
}
var db = GetDatabase(connectionString, dbName);
var collection = db.GetCollection(collectionName);
collection.Insert(model);
}

?

3、更新数据
?
/// 
/// 更新数据
/// 
/// 数据库连接串
/// 数据库名称
/// 集合名称
/// 查询条件
/// 更新字段
public static void Update(string connectionString, string dbName, string collectionName, IMongoQuery query, 
Dictionary dictUpdate)
{
var db = GetDatabase(connectionString, dbName);
var collection = db.GetCollection(collectionName);
var update = new UpdateBuilder();
if (dictUpdate != null && dictUpdate.Count > 0)
{
foreach (var item in dictUpdate)
{
update.Set(item.Key, item.Value);
}
}
collection.Update(query, update, UpdateFlags.Multi);
}

/// 
/// 更新数据
/// 
/// 数据库连接串
/// 数据库名称
/// 集合名称
/// 查询条件
/// 更新条件
public static void Update(string connectionString, string dbName, string collectionName, IMongoQuery query,
IMongoUpdate update)
{
var db = GetDatabase(connectionString, dbName);
var collection = db.GetCollection(collectionName);
collection.Update(query, update, UpdateFlags.Multi);
}

?

4、查询数据
?
/// 
/// 根据ID获取数据对象
/// 
/// 数据类型
/// 数据库连接串
/// 数据库名称
/// 集合名称
/// ID
/// 数据对象
public static T GetById(string connectionString, string dbName, string collectionName, string id)
where T : EntityBase
{
var db = GetDatabase(connectionString, dbName);
var collection = db.GetCollection(collectionName);
var tId = new ObjectId(id);
return collection.FindOneById(tId);
}

/// 
/// 根据查询条件获取一条数据
/// 
/// 数据类型
/// 数据库连接串
/// 数据库名称
/// 集合名称
/// 查询条件
/// 数据对象
public static T GetOneByCondition(string connectionString, string dbName, 
string collectionName, IMongoQuery query)
where T : EntityBase
{
var db = GetDatabase(connectionString, dbName);
var collection = db.GetCollection(collectionName);
return collection.FindOne(query);
}

/// 
/// 根据查询条件获取多条数据
/// 
/// 数据类型
/// 数据库连接串
/// 数据库名称
/// 集合名称
/// 查询条件
/// 数据对象集合
public static List GetManyByCondition(string connectionString, string dbName, 
string collectionName, IMongoQuery query)
where T : EntityBase
{
var db = GetDatabase(connectionString, dbName);
var collection = db.GetCollection(collectionName);
return collection.Find(query).ToList();
}

/// 
/// 根据查询条件获取多条数据(分页)
/// 
/// 数据类型
/// 数据库连接串
/// 数据库名称
/// 集合名称
/// 查询条件
/// 排序
/// 页号
/// 每页大小
/// 分页数据集合
public static PagingList GetManyByPageCondition(string connectionString, string dbName,
string collectionName, IMongoQuery query, IMongoSortBy sortBy, int pageIndex, int pageSize)
where T : EntityBase
{
var db = GetDatabase(connectionString, dbName);
var collection = db.GetCollection(col
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ubuntu下mysql导出数据 下一篇Oracle――几种分页方式

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: