2

我已经Flavor像我的其他模型一样定义了一个文档,并且最近添加了该is_archived字段:

class Flavor(BaseDocument):
    is_archived = BooleanField(default=False)

在 python shell 中,我可以验证我的 Documents 确实具有该字段并设置为布尔值:

for f in Flavor.objects.all():
    print f.is_archived, type(f.is_archived)

>> False <type 'bool>
>> False <type 'bool>
>> ...

但是当我filter查询时,它只返回我添加字段后创建的文档。

Flavor.objects(is_archived=False)
Flavor.objects.filter(is_archived=False)

>> [<Flavor: newFlavor>]
>> [<Flavor: newFlavor>]

如何更新过滤查询收集的旧文档?

4

1 回答 1

2

刚刚想通了。精心设计问题的完美示例自然而然地得出了答案:

for f in Flavor.objects.all():
    f.update(set__is_archived=f.is_archived)
于 2014-12-10T02:56:14.153 回答