mongo engine update命令用于具有适当输入值的字段

时间:2012-10-16 15:39:15

标签: django mongodb mongoengine

我有一个场景,我必须更新许多记录。但问题是我必须更新那些有一些变量作为输入的字段。如果任何传入的字段没有,则它不应该覆盖其现有的db值。

new_code = None
new_type = "new values"

user.objects(query).update(set__type=new_type ,set__code=new_code) 

上面的查询返回10条记录,但我想只更新类型coz它有一个值。但不应在db中更新代码值。因为它的变量是none(来自用户输入表格)

我必须做出某种if else条件

db中的

我有类似的记录 类型=旧,代码= 111 因为new_code不是作为输入而来的所以它应该只更新类型和db应该是这样的 type = new values,code = 111

1 个答案:

答案 0 :(得分:0)

您需要在更新前清除用户输入 - 无有效数据类型和要存储的值。

因为这些只是kwargs,你可以建立一个你想要更新的字典:

update = {}
if new_type:
    update['set__new_type' = new_type
if new_code:
    update['set__new_code' = new_code

user.objects(query).update(**update)