mongodb - 在MongoEngine中,更新 DictField?

  显示原文与译文双语对照的内容

如何在mongoengine中将数据添加到词典中?
我没有数据可以再次保存,我只有一个我想要添加的一个项目。

我尝试过:


Lookups.objects(pk="52d3a8e318fbaf0e1075de4f").update(push__schools=new_schools)

但我认为这不是工作的原因,因为 push 是将一个项目添加到列表中,而不是一个。 谁能帮我?

时间: 作者:

你应该使用 $set:


Lookups.objects(pk="52d3a8e318fbaf0e1075de4f").update(set__schools__KEY=VALUE)

更新:

如果你想设置多个键,那么你可以:


Lookups.objects(pk=x).update(set__schools__KEY=VALUE, set__schools__KEY1=VALUE1)

你可以转换成一个新的dict和更新,这样做:


new_schools = {"key1":"value1","key2":"value2"}
set_new_schools = dict((("set__schools_%s" % k, v) for k,v in new_schools.iteritems()))
Lookups.objects(pk=x).update(**set_new_schools)

作者:
...