dotnet core C# 数据库原生操作类,运行mongodb脚本
dotnet core C# 数据库原生操作类,运行mongodb脚本
/// <summary> /// MongoDb原生数据操作类 /// </summary> public class MongoDbHelperForSql : BaseEntity { //数据库 private readonly IMongoDatabase db = null; public MongoDbHelperForSql() { this.db = MongoDB.CreateDB(); } /// <summary> /// 获取数据集 /// </summary> /// <param name="tbname">数据集名称</param> /// <returns></returns> IMongoCollection<BsonDocument> Collection(string tbname) { return db.GetCollection<BsonDocument>(tbname); } /// <summary> /// 查询数据 /// </summary> /// <param name="CollectionName">数据集名(表名)</param> /// <param name="querystr">查询条件,如:{"AA":11}</param> /// <param name="pagesize">分页大小</param> /// <param name="page">当前页</param> /// <returns></returns> public async Task<List<BsonDocument>> GetDataJson(string CollectionName, string querystr, int pagesize = 10, int page = 1, SortDefinition<BsonDocument> sort = null) { //var filter = Builders<BsonDocument>.Filter.AnyGt("Rid", 1); var colt = Collection(CollectionName); var rtn = await colt.Find(querystr).Sort(sort).Limit(pagesize).Skip((page - 1) * pagesize).ToListAsync(); return rtn; } /// <summary> /// 查询所有数据 /// </summary> /// <param name="CollectionName">数据集名</param> /// <param name="querystr">查询条件</param> /// <returns></returns> public async Task<List<BsonDocument>> GetDataJson(string CollectionName,string querystr) { var colt = Collection(CollectionName); var rtn=await colt.Find(querystr).ToListAsync(); return rtn; } /// <summary> /// 查询所有数据,返回指定字段 /// </summary> /// <param name="CollectionName">数据集名</param> /// <param name="querystr">查询条件</param> /// <param name="filds">返回指定字段</param> /// <returns></returns> public async Task<List<BsonDocument>> GetDataJson(string CollectionName,string querystr,ProjectionDefinition<BsonDocument> filds) { var colt = Collection(CollectionName); var rtn = await colt.Find(querystr).Project(filds).ToListAsync(); return rtn; } /// <summary> /// 获取第一条记录 /// </summary> /// <param name="CollectionName">数据集名称</param> /// <param name="id">数据主键</param> /// <returns></returns> public async Task<BsonDocument> GetDataJsonFirst(string CollectionName, string id) { var filter = Builders<BsonDocument>.Filter.Eq("_id", ObjectId.Parse(id)); var colt = Collection(CollectionName); var rtn = await colt.Find(filter).FirstOrDefaultAsync(); return rtn; } /// <summary> /// 新增数据 /// </summary> /// <param name="CollectionName">数据集(表名)</param> /// <param name="insertJson">等新增Json数据</param> /// <returns></returns> public async Task<bool> MGInsert(string CollectionName, string insertJson) { var colt = Collection(CollectionName); try { await colt.InsertOneAsync(BsonDocument.Parse(insertJson)); return true; } catch { return false; } } /// <summary> /// 更新 /// </summary> /// <param name="CollectionName">数据集名称</param> /// <param name="filter">条件,如 {"_id":ObjectId("627e032ae3100000c7002455")}</param> /// <param name="upjson">更新内容,如 {$set:{"AA":21,"BB":31}}</param> /// <returns></returns> public async Task<UpdateResult> MGUpdate(string CollectionName, string findstr, string upstr) { // var uplist = Builders<BsonDocument>.Update; //var updates = new List<UpdateDefinition<BsonDocument>>(); //foreach (var obj in upjson) //{ // var s = obj; // updates.Add(uplist.Set(s.Key, s.Value.ToString())); //} var colt = Collection(CollectionName); //uplist.Combine(updates) var rtn = await colt.UpdateManyAsync(findstr, upstr); return rtn; } /// <summary> /// 删除 /// </summary> /// <param name="CollectionName">数据集名称</param> /// <param name="findstr">条件 如:{"_id":ObjectId("627e032ae3100000c7002455")}</param> /// <returns></returns> public async Task<DeleteResult> MGDelete(string CollectionName, string findstr) { var colt = Collection(CollectionName); var rtn = await colt.DeleteManyAsync(findstr); return rtn; } }