gpt4 book ai didi

python - pymongo 在文档中更新/插入字典

转载 作者:行者123 更新时间:2023-12-01 02:26:34 25 4
gpt4 key购买 nike

如果文档不存在,我想将字典插入到文档中作为字段的值(例如 v);

db.table.update_one({'k': some_unique_key},
{'$set': {'v': {name: 'some_name'},
upsert=True)

此外,如果文档存在,我想通过更新同一字段 (v) 的字典来更新文档,即将一对 name: value 添加到 v,我想知道该怎么做。

例如原始文档是这样的,

{'k': some_key, 'v': {'name_a': 'name_a_val'}}

v 添加一个键:值对 name_b:name_b_val 就像

{'k': some_key, 'v': {'name_a': 'name_a_val', 'name_b': 'name_b_val'}}

更新

这是我想出的解决方案

if not db.table.find_one({'k': some_unique_key}):
db.table.insert_one({'k': some_unique_key, 'v': {'name_a': 'name_a_val'})
else:
v_val_dict = db.table.find_one({'k': some_unique_key})['v']

vat_cache.update_one({'k': some_unique_key},
{'$set': {'v': v_val_dict.update({'name_b': 'name_b_val'})}})

我想知道是否有更好的方法来做到这一点。

最佳答案

您必须使用dot notation 。这将更新名为 name_a 的嵌套字段,或者在 v 内创建它(如果它不存在)。

coll.update_one({'k': 'some_key'}, 
{'$set': { 'v.name_a': 'name_a_val'}}, upsert=True)

关于python - pymongo 在文档中更新/插入字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47332206/

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