使用mongoengine将现有文档克隆到新的兄弟类文档

时间:2012-03-19 19:47:14

标签: mongoengine

我有以下课程

class ParentDocument(Document):
    .
    .
    .

class Child1Document(ParentDocument):
    .
    .
    .

class Child2Document(ParentDocument):

    .
    .
    .

现在假设我有一个Child1Document类型的文档。是否可以将其克隆到Child2Document类型的新文档?

我试过这样做:

doc1 = Child1Document()
doc1.attr1 = foo
doc1.save()

doc2 = Child2Document()
doc2 = doc1

但是这会将doc2转换为Child1Document类型。有没有办法将doc1的所有内容复制到doc2而不转换doc2?

1 个答案:

答案 0 :(得分:4)

是的,但是你需要使用deepcopy

你的代码看起来像这样:

from copy import deepcopy

doc1 = Child1Document()
doc1.attr1 = foo
doc1.save()

doc2 = deepcopy(doc1)
doc2.id = None
doc2.save()

克隆!