2020-09-25

MongoDB帮助类

MongoDB帮助类
public class MongoHelper {  private static readonly string _connectionString = ConfigHelper.GetAppConfig("mongodb");  private static readonly string _dbName = ConfigHelper.GetAppConfig("mongodbname");  private IMongoDatabase mongodb;  public MongoHelper()  {   MongoClient mc = new MongoClient(_connectionString);   mongodb = mc.GetDatabase(_dbName);  }  //单个查询  public async Task<T> FindAsync<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = await collections.Find(filter).FirstOrDefaultAsync();   return result;  }  public async Task<BsonDocument> FindAsync(string tablename, FilterDefinition<BsonDocument> filter)  {   var collections = mongodb.GetCollection<BsonDocument>(tablename);   var result = await collections.Find(filter).FirstOrDefaultAsync();   return result;  }  public T Find<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var first = collections.Find(filter).FirstOrDefault();   return first;  }  public T Find<T>(string tablename, Expression<Func<T, bool>> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var first = collections.Find(filter).FirstOrDefault();   return first;  }  public T FirstOrDefault<T>(string tablename, string orderbyname, bool isDescending, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   SortDefinition<T> sd = null;   if (isDescending)   {    sd = Builders<T>.Sort.Descending(orderbyname);   }   else   {    sd = Builders<T>.Sort.Ascending(orderbyname);   }   var first = collections.Find(filter).Sort(sd).FirstOrDefault();   return first;  }  //批量查询  public async Task<List<T>> FindListAsync<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = await collections.Find(filter).ToListAsync();   return result;  }  public List<T> FindList<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var bsonlist = collections.Find(filter).ToList();   return bsonlist;  }  public List<T> FindList<T>(string tablename, FilterDefinition<T> filter, string orderbyname, bool isDescending,int limit)  {   var collections = mongodb.GetCollection<T>(tablename);   SortDefinition<T> sd = null;   if (isDescending)   {    sd = Builders<T>.Sort.Descending(orderbyname);   }   else   {    sd = Builders<T>.Sort.Ascending(orderbyname);   }   var bsonlist = collections.Find(filter).Sort(sd).Limit(limit).ToList();   return bsonlist;  }  public List<T2> Aggregate<T, T2>(string tablename, FilterDefinition<T> filter, BsonDocument bd)  {   var collections = mongodb.GetCollection<T>(tablename);   var bsonlist = collections.Aggregate().Match(filter).Group<T2>(bd).ToList();   return bsonlist;  }  public List<T> FindPageList<T>(string tablename, FilterDefinition<T> filter, string orderbyname,bool isDescending, int pageIndex, int pageSize)  {   var collections = mongodb.GetCollection<T>(tablename);   int skip = (pageIndex - 1) * pageSize;   SortDefinition<T> sd = null;   if (isDescending)   {    sd = Builders<T>.Sort.Descending(orderbyname);   }   else   {    sd = Builders<T>.Sort.Ascending(orderbyname);   }   var list = collections.Find(filter).Sort(sd).Skip(skip).Limit(pageSize).ToList();   return list;  }  public List<T> FindList<T>(string tablename, Expression<Func<T, bool>> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var bsonlist = collections.Find(filter).ToList();   return bsonlist;  }  //插入  public async Task InsertAsync<T>(string tablename, T t)  {   var collections = mongodb.GetCollection<T>(tablename);   await collections.InsertOneAsync(t);  }  public void Insert<T>(string tablename, T t)  {   var collections = mongodb.GetCollection<T>(tablename);   collections.InsertOne(t);  }  public async Task InsertManyAsync<T>(string tablename, List<T> t)  {   var collections = mongodb.GetCollection<T>(tablename);   await collections.InsertManyAsync(t);  }  public void InsertMany<T>(string tablename, List<T> t)  {   var collections = mongodb.GetCollection<T>(tablename);   collections.InsertMany(t);  }  public async Task InsertManyAsync(string tablename, List<BsonDocument> t)  {   var collections = mongodb.GetCollection<BsonDocument>(tablename);   await collections.InsertManyAsync(t);  }  public void InsertMany(string tablename, List<BsonDocument> t)  {   var collections = mongodb.GetCollection<BsonDocument>(tablename);   collections.InsertMany(t);  }  //批量删除  public long DeleteMany<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = collections.DeleteMany(filter);   return result.DeletedCount;  }  public async Task<long> DeleteManyAsync<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = await collections.DeleteManyAsync(filter);   return result.DeletedCount;  }  //单个删除  public bool Delete<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = collections.DeleteOne(filter);   return result.DeletedCount == 1;  }  public bool Delete<T>(string tablename, Expression<Func<T, bool>> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = collections.DeleteOne(filter);   return result.DeletedCount >= 1;  }  public async Task<bool> DeleteAsync<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = await collections.DeleteOneAsync(filter);   return result.DeletedCount >= 1;  }  public async Task<bool> DeleteAsync<T>(string tablename, Expression<Func<T, bool>> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = await collections.DeleteOneAsync(filter);   return result.DeletedCount >= 1;  }  //获取数量  public long Count<T>(string tablename, FilterDefinition<T> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   return collections.Count(filter);  }  public long Count<T>(string tablename, Expression<Func<T, bool>> filter)  {   var collections = mongodb.GetCollection<T>(tablename);   return collections.Count(filter);  }  public long Count(string tablename, FilterDefinition<BsonDocument> filter)  {   var collections = mongodb.GetCollection<BsonDocument>(tablename);   return collections.Count(filter);  }  //去重查询  public void Distinct(string tablename, FieldDefinition<BsonDocument, BsonString> field, FilterDefinition<BsonDocument> filter)  {   var collections = mongodb.GetCollection<BsonDocument>(tablename);   collections.Distinct(field, filter);  }  //更新数据  public bool UpdateOne<T>(string tablename, FilterDefinition<T> filter, UpdateDefinition<T> update)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = collections.UpdateOne(filter, update);   return result.MatchedCount>=1;  }  //批量更新  public bool UpdateMany<T>(string tablename, FilterDefinition<T> filter, UpdateDefinition<T> update)  {   var collections = mongodb.GetCollection<T>(tablename);   var result = collections.UpdateMany(filter, update);   return result.MatchedCount >= 1;  } }

  

原文转载:http://www.shaoqun.com/a/477652.html

小马哥:https://www.ikjzd.com/w/1655

moss:https://www.ikjzd.com/w/1653

eori:https://www.ikjzd.com/w/499


MongoDB帮助类publicclassMongoHelper{privatestaticreadonlystring_connectionString=ConfigHelper.GetAppConfig("mongodb");privatestaticreadonlystring_dbName=ConfigHelper.GetAppConfig("mongodbn
pocket:https://www.ikjzd.com/w/1903
sonar:https://www.ikjzd.com/w/215
亚马逊欧洲站印度站执行产品标题要求 / 德国电商规模在欧洲仅次于英国:https://www.ikjzd.com/home/101978
外贸课堂:四大经典报价方法!:https://www.ikjzd.com/home/105215
新蛋:https://www.ikjzd.com/w/79

No comments:

Post a Comment