123 / mongo.py
sin30's picture
Upload mongo.py
e33079c verified
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 的记录")