我使用下面的代码,但我不想删除/复制。我以前能够更改父ID,但Mongoid / MongoDB中的嵌入文档不存在
def move(new_parent)
if self._parent != new_parent
copy = self.dup
self.delete
new_parent.items << copy
end
end
答案 0 :(得分:2)
我的理解是嵌入式文档作为属性存储在父文档中 - 它们没有parent_id,因为它们实际上是其父级的一部分(因此,“嵌入”)。因此,重新定义它们的唯一方法是克隆&amp;删除 - 就像你做的那样。
你可能会把你的方法减少一行,但这就是它。
def move(new_parent)
unless new_parent.id == parent.id
new_parent.items << self.dup
self.delete
end
end