from pymongo import MongoClient def filter_mongo_data(json_data, db_name, collection_name): print('进入数据库') client = MongoClient() session = client.start_session() # 创建新的会话 session.start_transaction() # 开始事务 try: cursor_result = client[db_name][collection_name].find( {"stratagy_id": json_data['stratagy_id'], "app_name": json_data['app_name']}, session=session) if (len(list(cursor_result)) < 5) and json_data['over_flow_price']: print("插入中....") json_data.update({"expireAt": datetime.now()}) client[db_name][collection_name].insert_one(json_data, session=session) # 在会话中执行插入操作 http_request_queue(bargain_info) # 在会话中执行http请求 session.commit_transaction() # 提交事务 return True else: print(json_data) print('此策略id今天已经插满 请明天插入') session.abort_transaction() # 回滚事务 return None except Exception as e: print("出现错误,回滚事务", e) session.abort_transaction() # 回滚事务 finally: session.end_session() # 结束会话 client.close() # 关闭连接