2014-10-07 68 views
1

我在foo和bar之间有一对多的关系。我希望确保每当删除foo时,所有引用它的栏都将被删除。有没有办法确保吗啡会发生吗吗?我可以编写删除查询来查找所有依赖对象,并将它们删除,但问题是,条形对象也有引用它们的东西,我想删除它们,并且希望确保自动删除逻辑级联。删除吗啡中所有依赖于已删除参考的记录?

+0

当你删除一个指针时,你将有一个NULL引用。所以如果有其他指针指向同一个指针,这些指针将会有一个NULL引用;他们指向无处。但是,如果条形指针指向foo指向的位置,或者它们都指向相同的内存位置,则条形指针将继续引用相同的内存。删除后检查小节电流参考,您只需要打印它的值。其中应该是null或0引用。 – Juniar 2014-10-07 17:08:11

+0

我了解默认行为,但我不想要默认行为。我希望foo的所有要点能够在条形图完全消失的情况下完全消失,而不必检查条形图引用或将它们作为单独的查询删除。我认为mongo可能已经通过优化来支持它,使其更加高效,因为它似乎是一种常见的用例。我不是很确定*吗啡*支持它,我无法找到如何做到这一点,但我想我会问:) – dsollen 2014-10-07 17:35:06

回答

3

您必须发出单独的删除呼叫才能删除引用的文档。 Mongo不支持关系,也不支持级联删除。您可能会考虑嵌入这些文档,而不是使用引用。

+0

我害怕你会这样说,但我不得不问如果有选择的话。感谢您确认我怀疑的内容。嵌入可能最终发生,现在我试图最小化对现有mongo结构的更改。我会在后面记住它。 – dsollen 2014-10-07 18:04:13