gpt4 book ai didi

python - pymongo update_one(), upsert=True 不使用 $ 运算符

转载 作者:IT老高 更新时间:2023-10-28 13:19:45 31 4
gpt4 key购买 nike

我有以下形式的文件:

{"hostname": "myhost1.com", "services": { ... } }

我想做的是:

dataset = requests.get('http://endpoint.com/hardware.json').json()
for hostname, services in dataset[0].items():
db.titleHardware.update_one({'hostname':hostname},
{services.keys()[0]: services.values()[0]},
True) #upsert

但是,我收到以下错误:

ValueError: update only works with $ operators

有没有办法完成整个 "services" block 的更新,基于 "hostname" 键(并最终插入一个新文档,如果 主机名不存在)?我知道我可以编写逻辑来比较我的 MongoDB 中的内容与我尝试更新/插入的内容,但我希望 pymongo 中可能已经有一些东西或者我可以使用的东西.

最佳答案

您是否查看过 updateOne 的 mongodb 文档? ?您必须指定更新运算符,例如 $set:

for hostname, services in dataset[0].items():
db.titleHardware.update_one({'hostname':hostname},
{'$set': {services.keys()[0]: services.values()[0]}},
upsert=True)

关于python - pymongo update_one(), upsert=True 不使用 $ 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110924/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com