更新数组中的单条数据

This commit is contained in:
王思川 2022-08-29 13:14:50 +08:00
parent 64f137c4fa
commit 67436c48c6
2 changed files with 37 additions and 3 deletions

View File

@ -196,12 +196,30 @@ class MongoHelper:
param2: str 数据表
param3: dict 查询条件
param4: dict 更新或新插入的数据
return:
None
return: None
"""
collection = self.client[param1][param2]
collection.update_one(param3, {"$set": param4})
def update_single_data_in_array(self, param1, param2, param3, param4, param5):
"""
更新数组中的单条数据
param1: str 数据库
param2: str 数据表
param3: dict 一级字段查询条件
param4: dict 二级字段查询条件
param5: dict 更新或新插入的数据
return: None
"""
collection = self.client[param1][param2]
try:
param4_key = list(param4.keys())[0]
param4_value = list(param4.values())[0]
search = {**param3, param4_key: {"$elemMatch": param4_value}}
collection.update_one(search, {"$set": {"{}.$".format(param4_key): param5}})
except Exception:
pass
def update_single_data_by_pull(self, param1, param2, param3, param4):
"""
更新单条数据
@ -281,4 +299,3 @@ class MongoHelper:
else:
dbs = self.client.database_names()
return dbs

17
DBHelper/test.py Normal file
View File

@ -0,0 +1,17 @@
from DBHelper.MongoHelperInstance import DB_TEST
DB_TEST.update_single_data_in_array(
"WR_DataBase_v2_test",
"C3.2_股东信息",
{"企业ID": "xzTtCERe"},
{"股东列表": {"股东名称": "A股股东"}},
{
"股东ID": 2390620707,
"股东名称": "A股股东",
"股东类型": "其他",
"股东性质": None,
"持股比例": "62.28%",
"认缴出资额": "181314.2855万人民币",
"认缴出资日期": "2016-09-30"
}
)