From 67436c48c6cfcfb3bd94c3ef3ecde060982d2616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=9D=E5=B7=9D?= Date: Mon, 29 Aug 2022 13:14:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E7=BB=84=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=8D=95=E6=9D=A1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DBHelper/MongoHelper.py | 23 ++++++++++++++++++++--- DBHelper/test.py | 17 +++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 DBHelper/test.py diff --git a/DBHelper/MongoHelper.py b/DBHelper/MongoHelper.py index 08d0294..33c661b 100644 --- a/DBHelper/MongoHelper.py +++ b/DBHelper/MongoHelper.py @@ -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 - diff --git a/DBHelper/test.py b/DBHelper/test.py new file mode 100644 index 0000000..ee747e0 --- /dev/null +++ b/DBHelper/test.py @@ -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" + } +)