Prechádzať zdrojové kódy

Enabled update many in 'update_data_in_collection'

ogert 5 rokov pred
rodič
commit
9fc0941757
1 zmenil súbory, kde vykonal 18 pridanie a 7 odobranie
  1. 18 7
      cdplib/db_handlers/MongodbHandler.py

+ 18 - 7
cdplib/db_handlers/MongodbHandler.py

@@ -402,20 +402,31 @@ class MongodbHandler:
         else:
             return data
 
-    def update_data_in_collection(self, update_label:str, update_value: str, collection_name:str, query_label: str = None, query_value: str = None, create_if_not_exist: bool = True, find_query: dict = None):
+    def update_data_in_collection(self, update_label:str, update_value: str, collection_name:str, query_label: str = None, query_value: str = None, create_if_not_exist: bool = True, find_query: dict = None, update_many: bool = False):
         
         if isinstance(update_value, pd.DataFrame):
             update_value = simplejson.loads(update_value.to_json(orient="records",
                                                  date_format="iso"))
         try:
-            if query_label and query_value:
-                self._database[collection_name].update_one({query_label:query_value}, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
-            
-            elif find_query:
-                self._database[collection_name].update_one(find_query, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
+            if update_many:
+                if query_label and query_value:
+                    self._database[collection_name].update_many({query_label:query_value}, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
+                
+                elif find_query:
+                    self._database[collection_name].update_many(find_query, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
+
+                else:
+                    self._database[collection_name].update_many({}, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
 
             else:
-                self._database[collection_name].update_one({}, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
+                if query_label and query_value:
+                    self._database[collection_name].update_one({query_label:query_value}, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
+                
+                elif find_query:
+                    self._database[collection_name].update_one(find_query, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
+
+                else:
+                    self._database[collection_name].update_one({}, {"$set": {update_label: update_value}}, upsert=create_if_not_exist)
 
             self._log.info(('Data for label: {} has been updated').format(update_label))