import pymongo def get_mongo_col(col="config_beta"): """ 获取操作mongo集合 """ mongo_3012 = "mongodb://dashboard:9qRV71M%25Trx1CI@m3012.hw.mongos.m.com:3012/dashboard?authSource=dashboard" client = pymongo.MongoClient(mongo_3012, maxPoolSize=500) db = client["dashboard"] col = db[col] # data_package(7234543961263854561) goods_feature("7234800834201014260") return col # 拿到 collection 对象 collection = get_mongo_col() # 默认 col="config_beta" doc = collection.find_one( {"name": "txt2txt_price_config"}, {"_id": 0, "data": 1} ) if not doc: raise RuntimeError("找不到配置 document") data = doc["data"] data["gpt-4.1"] = { "completion_price": 0.008, "prompt_price": 0.002, "currency": "$" } data["gpt-4.1-mini"] = { "completion_price": 0.0016, "prompt_price": 0.0004, "currency": "$" } data["gpt-4.1-nano"] = { "completion_price": 0.0004, "prompt_price": 0.0001, "currency": "$" } data["gpt-5"] = { "completion_price": 0.01, "prompt_price": 0.00125, "currency": "$" } data["gpt-5-chat"] = { "completion_price": 0.01, "prompt_price": 0.00125, "currency": "$" } data["gpt-5-nano"] = { "completion_price": 0.0004, "prompt_price": 0.00005, "currency": "$" } data["gpt-5-mini"] = { "completion_price": 0.002, "prompt_price": 0.00025, "currency": "$" } # 3. 一次性把整个 data 写回去 result = collection.update_one( {"name": "txt2txt_price_config"}, {"$set": {"data": data}} ) print(f"matched={result.matched_count}, modified={result.modified_count}") query = {"name": "txt2txt_price_config"} projection = {"_id": 0, "data": 1} doc = collection.find_one(query, projection) if doc: data_value = doc.get("data") print(data_value) else: print("未找到 name 等于 txt2txt_price_config 的记录")