Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 具有正确输入值的字段的mongo引擎更新命令_Django_Mongodb_Mongoengine - Fatal编程技术网

Django 具有正确输入值的字段的mongo引擎更新命令

Django 具有正确输入值的字段的mongo引擎更新命令,django,mongodb,mongoengine,Django,Mongodb,Mongoengine,我有一个场景,我必须更新许多记录。但问题是我必须更新那些有变量作为输入的字段。如果任何传入字段没有,则不应覆盖其现有的db值 new_code = None new_type = "new values" user.objects(query).update(set__type=new_type ,set__code=new_code) 上面的查询返回10条记录,但我只想更新类型,因为它有一个值。但代码值不应以db为单位进行更新。因为它的变量是none(来自用户输入表单) 我必须做一些假设

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

new_code = None
new_type = "new values"

user.objects(query).update(set__type=new_type ,set__code=new_code) 
上面的查询返回10条记录,但我只想更新类型,因为它有一个值。但代码值不应以db为单位进行更新。因为它的变量是none(来自用户输入表单)

我必须做一些假设条件

在db中,我有如下记录 类型=旧,代码=111 因为新的_代码不是作为输入来的,所以它应该只更新类型,db应该是这样的
type=新值,code=111

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

因为这些只是Kwarg,所以您可以为您想要更新的内容构建一个字典:

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

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