听起来您想执行“ upsert”。MongoDB对此具有内置支持。将一个额外的参数传递给您的update()调用:{upsert:true}。例如:
key = {'key':'value'}data = {'key2':'value2', 'key3':'value3'};coll.update(key, data, upsert=True); #In python upsert must be passed as a keyword argument
这将完全替换if-find-else-update块。如果密钥不存在,它将插入;如果密钥不存在,它将更新。
之前:
{"key":"value", "key2":"Ohai."}
后:
{"key":"value", "key2":"value2", "key3":"value3"}
您还可以指定要写入的数据:
data = {"$set":{"key2":"value2"}}
现在,您选择的文档将仅更新“ key2”的值,而其他所有内容保持不变。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)