利用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, DictionarydictUpdate) { 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 ListGetManyByCondition (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 PagingListGetManyByPageCondition (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