/// <summary> /// 异步批量修改数据 /// </summary> /// <param name="dic">要修改的字段</param> /// <param name="host">mongodb连接信息</param> /// <param name="filter">修改条件</param> /// <returns></returns> public static async Task <UpdateResult> UpdateManayAsync(MongodbHostOptions host, Dictionary <string, string> dic, FilterDefinition <T> filter) { try { var client = MongodbClient <T> .MongodbInfoClient(host); T t = new T(); //要修改的字段 var list = new List <UpdateDefinition <T> >(); foreach (var item in t.GetType().GetProperties()) { if (!dic.ContainsKey(item.Name)) { continue; } var value = dic[item.Name]; list.Add(Builders <T> .Update.Set(item.Name, value)); } var updatefilter = Builders <T> .Update.Combine(list); return(await client.UpdateManyAsync(filter, updatefilter)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 异步根据id查询一条数据 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="id">objectid</param> /// <param name="field">字段名称</param> /// <returns></returns> public static async Task <T> FindOneAsync(MongodbHostOptions host, string id, string[] field = null) { try { var client = MongodbClient <T> .MongodbInfoClient(host); FilterDefinition <T> filter = Builders <T> .Filter.Eq("_id", new ObjectId(id)); //不指定查询字段 if (field == null || field.Length == 0) { return(await client.Find(filter).FirstOrDefaultAsync()); } //制定查询字段 var fieldList = new List <ProjectionDefinition <T> >(); for (int i = 0; i < field.Length; i++) { fieldList.Add(Builders <T> .Projection.Include(field[i].ToString())); } var projection = Builders <T> .Projection.Combine(fieldList); fieldList?.Clear(); return(await client.Find(filter).Project <T>(projection).FirstOrDefaultAsync()); } catch (Exception ex) { throw ex; } }
/// <summary> /// 异步修改一条数据 /// </summary> /// <param name="t">添加的实体</param> /// <param name="host">mongodb连接信息</param> /// <param name="id">主键</param> /// <returns></returns> public static async Task <UpdateResult> UpdateAsync(MongodbHostOptions host, T t, string id) { try { var client = MongodbClient <T> .MongodbInfoClient(host); //修改条件 FilterDefinition <T> filter = Builders <T> .Filter.Eq("_id", new ObjectId(id)); //要修改的字段 var list = new List <UpdateDefinition <T> >(); foreach (var item in t.GetType().GetProperties()) { if (item.Name.ToLower() == "id") { continue; } list.Add(Builders <T> .Update.Set(item.Name, item.GetValue(t))); } var updatefilter = Builders <T> .Update.Combine(list); return(await client.UpdateOneAsync(filter, updatefilter)); } catch (Exception ex) { throw ex; } }
public void TestDeleteInstance() { MongodbClient mongodbClient = GetMongodbClient(); DeleteInstanceRequest request = new DeleteInstanceRequest(); request.RegionId = "cn-north-1"; request.InstanceId = "mongo-hfu1w2uhbc"; var response = mongodbClient.DeleteInstance(request).Result; _output.WriteLine(JsonConvert.SerializeObject(response)); }
public void TestDeleteBackup() { MongodbClient mongodbClient = GetMongodbClient(); DeleteBackupRequest request = new DeleteBackupRequest(); request.RegionId = "cn-north-1"; request.BackupId = "mongo-hfu1w2uhbc@115306868213070"; var response = mongodbClient.DeleteBackup(request).Result; _output.WriteLine(JsonConvert.SerializeObject(response)); }
public void TestCreateBackup() { MongodbClient mongodbClient = GetMongodbClient(); CreateBackupRequest request = new CreateBackupRequest(); request.InstanceId = "mongo-hfu1w2uhbc"; request.RegionId = "cn-north-1"; request.BackupName = "dotnetsdktestbackup"; var response = mongodbClient.CreateBackup(request).Result; _output.WriteLine(JsonConvert.SerializeObject(response)); }
public void TestModifyInstanceName() { MongodbClient mongodbClient = GetMongodbClient(); ModifyInstanceNameRequest request = new ModifyInstanceNameRequest(); request.InstanceId = "mongo-hfu1w2uhbc"; request.InstanceName = "dotnetsdk test"; request.RegionId = "cn-north-1"; var response = mongodbClient.ModifyInstanceName(request).Result; _output.WriteLine(JsonConvert.SerializeObject(response)); }
public void TestResetPassword() { MongodbClient mongodbClient = GetMongodbClient(); ResetPasswordRequest request = new ResetPasswordRequest(); request.InstanceId = "mongo-hfu1w2uhbc"; request.RegionId = "cn-north-1"; request.AccountPassword = "******"; var response = mongodbClient.ResetPassword(request).Result; _output.WriteLine(JsonConvert.SerializeObject(response)); }
private async void ButtonUpdate_Click(object sender, RoutedEventArgs e) { try { if (!string.IsNullOrEmpty(NameGood)) { IMongoDatabase mongodb = MongodbClient.GetDatabase(DataBase); var goods = mongodb.GetCollection <BsonDocument>(Collection); var document = new BsonDocument(); switch (CurrentType) { case Good_types.Default: document["Name"] = NameGood; document["Value"] = ValueGood; document["Type"] = CurrentType; break; case Good_types.Prom: document["Name"] = NameGood; document["Value"] = ValueGood; document["Type"] = CurrentType; document["SizeGood"] = SizeGood; break; case Good_types.Prod: document["Name"] = NameGood; document["Value"] = ValueGood; document["Type"] = CurrentType; document["ExpDate"] = ExpDate; break; case Good_types.Alkogol: document["Name"] = NameGood; document["Value"] = ValueGood; document["Type"] = CurrentType; document["ExpDate"] = ExpDate; document["Alco"] = Alco; break; } await goods.ReplaceOneAsync(new BsonDocument("_id", CurrentId), document); } } catch { } finally { Close(); } }
public static async Task <int> GridFSAddAsync(MongodbHostOptions host, T t) { try { var client = MongodbClient <T> .MongodbInfoClient(host); return(1); } catch { return(0); } }
/// <summary> /// 异步根据条件获取总数 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">条件</param> /// <returns></returns> public static async Task <long> CountAsync(MongodbHost host, FilterDefinition <T> filter) { try { var client = MongodbClient <T> .MongodbInfoClient(host); return(await client.CountAsync(filter)); } catch (Exception ex) { throw ex; } }
public void TestDescribeInstances() { //mongo-c2eirq2e84 MongodbClient mongodbClient = GetMongodbClient(); DescribeInstancesRequest request = new DescribeInstancesRequest(); request.PageNumber = 1; request.PageSize = 100; request.RegionId = "cn-north-1"; var response = mongodbClient.DescribeInstances(request).Result; _output.WriteLine(JsonConvert.SerializeObject(response)); }
/// <summary> /// 根据条件获取总数 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">条件</param> /// <returns></returns> public static long Count(MongodbHost host, FilterDefinition <T> filter) { try { var client = MongodbClient <T> .MongodbInfoClient(host); return(client.Count(filter)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 异步删除多条数据 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">删除的条件</param> /// <returns></returns> public static async Task <DeleteResult> DeleteManyAsync(MongodbHostOptions host, FilterDefinition <T> filter) { try { var client = MongodbClient <T> .MongodbInfoClient(host); return(await client.DeleteManyAsync(filter)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 删除一条数据 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">删除的条件</param> /// <returns></returns> public static DeleteResult DeleteMany(MongodbHostOptions host, FilterDefinition <T> filter) { try { var client = MongodbClient <T> .MongodbInfoClient(host); return(client.DeleteMany(filter)); } catch (Exception ex) { throw ex; } }
public void TestModifyInstanceSpec() { MongodbClient mongodbClient = GetMongodbClient(); ModifyInstanceSpecRequest request = new ModifyInstanceSpecRequest(); request.InstanceId = "mongo-hfu1w2uhbc"; request.RegionId = "cn-north-1"; request.InstanceStorageGB = 20; request.InstanceClass = "mongo.s1.small"; var response = mongodbClient.ModifyInstanceSpec(request).Result; _output.WriteLine(JsonConvert.SerializeObject(response)); }
/// <summary> /// 批量插入 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="t">实体集合</param> /// <returns></returns> public static int InsertMany(MongodbHost host, List <T> t) { try { var client = MongodbClient <T> .MongodbInfoClient(host); client.InsertMany(t); return(1); } catch (Exception ex) { return(0); } }
/// <summary> /// 添加一条数据 /// </summary> /// <param name="t">添加的实体</param> /// <param name="host">mongodb连接信息</param> /// <returns></returns> public static int Add(MongodbHostOptions host, T t) { try { var client = MongodbClient <T> .MongodbInfoClient(host); client.InsertOne(t); return(1); } catch { return(0); } }
/// <summary> /// 删除一条数据 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="id">objectId</param> /// <returns></returns> public static DeleteResult Delete(MongodbHostOptions host, string id) { try { var client = MongodbClient <T> .MongodbInfoClient(host); FilterDefinition <T> filter = Builders <T> .Filter.Eq("_id", new ObjectId(id)); return(client.DeleteOne(filter)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 异步添加一条数据 /// </summary> /// <param name="t">添加的实体</param> /// <param name="host">mongodb连接信息</param> /// <returns></returns> public static async Task <int> AddAsync(MongodbHostOptions host, T t) { try { var client = MongodbClient <T> .MongodbInfoClient(host); await client.InsertOneAsync(t); return(1); } catch { return(0); } }
/// <summary> /// 异步添加一条数据 /// </summary> /// <param name="t">添加的实体</param> /// <param name="host">mongodb连接信息</param> /// <returns></returns> public static async Task <bool> AddAsync(MongodbHost host, T t) { try { var client = MongodbClient <T> .MongodbInfoClient(host); await client.InsertOneAsync(t); return(true); } catch { return(false); } }
/// <summary> /// 异步批量插入 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="t">实体集合</param> /// <returns></returns> public static async Task <int> InsertManyAsync(MongodbHost host, List <T> t) { try { var client = MongodbClient <T> .MongodbInfoClient(host); await client.InsertManyAsync(t); return(1); } catch { return(0); } }
/// <summary> /// 异步删除一条数据 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="id">objectId</param> /// <returns></returns> public static async Task <DeleteResult> DeleteAsync(MongodbHostOptions host, string id) { try { var client = MongodbClient <T> .MongodbInfoClient(host); //修改条件 FilterDefinition <T> filter = Builders <T> .Filter.Eq("_id", new ObjectId(id)); return(await client.DeleteOneAsync(filter)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 异步根据条件获取总数 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">条件</param> /// <returns></returns> public static async Task <long> CountAsync(MongodbHostOptions host, FilterDefinition <T> filter) { try { var client = MongodbClient <T> .MongodbInfoClient(host); #pragma warning disable CS0618 // 类型或成员已过时 return(await client.CountAsync(filter)); #pragma warning restore CS0618 // 类型或成员已过时 } catch (Exception ex) { throw ex; } }
/// <summary> /// 分页查询集合 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">查询条件</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页容量</param> /// <param name="count">总条数</param> /// <param name="field">要查询的字段,不写时查询全部</param> /// <param name="sort">要排序的字段</param> /// <returns></returns> public static List <T> FindListByPage(MongodbHostOptions host, FilterDefinition <T> filter, int pageIndex, int pageSize, out long count, string[] field = null, SortDefinition <T> sort = null) { try { var client = MongodbClient <T> .MongodbInfoClient(host); #pragma warning disable CS0618 // 类型或成员已过时 count = client.Count(filter); #pragma warning restore CS0618 // 类型或成员已过时 //不指定查询字段 if (field == null || field.Length == 0) { if (sort == null) { return(client.Find(filter).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToList()); } //进行排序 return(client.Find(filter).Sort(sort).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToList()); } //制定查询字段 var fieldList = new List <ProjectionDefinition <T> >(); for (int i = 0; i < field.Length; i++) { fieldList.Add(Builders <T> .Projection.Include(field[i].ToString())); } var projection = Builders <T> .Projection.Combine(fieldList); fieldList?.Clear(); //不排序 if (sort == null) { return(client.Find(filter).Project <T>(projection).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToList()); } //排序查询 return(client.Find(filter).Sort(sort).Project <T>(projection).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToList()); } catch (Exception ex) { throw ex; } }
/// <summary> /// 异步分页查询集合 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">查询条件</param> /// <param name="pageIndex">当前页</param> /// <param name="pageSize">页容量</param> /// <param name="field">要查询的字段,不写时查询全部</param> /// <param name="sort">要排序的字段</param> /// <returns></returns> public static async Task <List <T> > FindListByPageAsync(MongodbHostOptions host, FilterDefinition <T> filter, int pageIndex, int pageSize, string[] field = null, SortDefinition <T> sort = null) { try { var client = MongodbClient <T> .MongodbInfoClient(host); //不指定查询字段 if (field == null || field.Length == 0) { if (sort == null) { return(await client.Find(filter).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToListAsync()); } //进行排序 return(await client.Find(filter).Sort(sort).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToListAsync()); } //制定查询字段 var fieldList = new List <ProjectionDefinition <T> >(); for (int i = 0; i < field.Length; i++) { fieldList.Add(Builders <T> .Projection.Include(field[i].ToString())); } var projection = Builders <T> .Projection.Combine(fieldList); fieldList?.Clear(); //不排序 if (sort == null) { return(await client.Find(filter).Project <T>(projection).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToListAsync()); } //排序查询 return(await client.Find(filter).Sort(sort).Project <T>(projection).Skip((pageIndex - 1) * pageSize).Limit(pageSize).ToListAsync()); } catch (Exception ex) { throw ex; } }
/// <summary> /// 查询集合 /// </summary> /// <param name="host">mongodb连接信息</param> /// <param name="filter">查询条件</param> /// <param name="field">要查询的字段,不写时查询全部</param> /// <param name="sort">要排序的字段</param> /// <returns></returns> public static List <T> FindList(MongodbHostOptions host, FilterDefinition <T> filter, string[] field = null, SortDefinition <T> sort = null) { try { var client = MongodbClient <T> .MongodbInfoClient(host); //不指定查询字段 if (field == null || field.Length == 0) { if (sort == null) { return(client.Find(filter).ToList()); } //进行排序 return(client.Find(filter).Sort(sort).ToList()); } //制定查询字段 var fieldList = new List <ProjectionDefinition <T> >(); for (int i = 0; i < field.Length; i++) { fieldList.Add(Builders <T> .Projection.Include(field[i].ToString())); } var projection = Builders <T> .Projection.Combine(fieldList); fieldList?.Clear(); if (sort == null) { return(client.Find(filter).Project <T>(projection).ToList()); } //排序查询 return(client.Find(filter).Sort(sort).Project <T>(projection).ToList()); } catch (Exception ex) { throw ex; } }
/// <summary> /// 更新会员预约单统计表(弃用的解决方法) /// </summary> /// <param name="orders"></param> private void UpdateMemberOrderStatistics(List <OrderUser> orders) { var days = DateTime.Now.DayOfYear % 180; //插入记录 var coll = MongodbClient.Collection <MemberOrderStatisticsInfo>(); List <MemberOrderStatisticsInfo> memberOrderStatisticss = new List <MemberOrderStatisticsInfo>(); foreach (var item in orders) { //删除会员已有数据 coll.DeleteMany(p => p.UserId == item.UserId && p.Days == days); //重新添加 var memberOrderStatistics = new MemberOrderStatisticsInfo() { OrderNumber = item.OrderNumber, UserId = item.UserId }; memberOrderStatistics.Days = days; memberOrderStatisticss.Add(memberOrderStatistics); } coll.InsertMany(memberOrderStatisticss); }
public void TestCreateInstance() { MongodbClient mongodbClient = GetMongodbClient(); CreateInstanceRequest request = new CreateInstanceRequest(); request.RegionId = "cn-north-1"; DBInstanceSpec dbInstanceSpec = new DBInstanceSpec(); dbInstanceSpec.InstanceClass = "mongo.s1.small"; dbInstanceSpec.InstanceStorageGB = 10; dbInstanceSpec.MultiAZ = false; dbInstanceSpec.AzId = new List <string>() { "cn-north-1a", "cn-north-1a", "cn-north-1a" }; dbInstanceSpec.VpcId = "vpc-zo33sfjnbo"; dbInstanceSpec.SubnetId = "subnet-j0yka3pkcu"; dbInstanceSpec.Password = "******"; dbInstanceSpec.InstanceName = "dotnetsdktest"; request.InstanceSpec = dbInstanceSpec; var response = mongodbClient.CreateInstance(request); _output.WriteLine(JsonConvert.SerializeObject(response)); }