我正在尝试获取一个 mongoDB 对象,例如 Friend1
包含另一个 mongoDB 对象 Friend2
,该对象又包含第一个对象 Friend1
本质上使它成为一个循环对象引用。
要么这样,要么类似的。
我希望能够更新 Friend2.value
并以某种方式从 Friend1
检索它,例如.. Friend1.friend2.value
我找到了 populate没多大用处..它只是创建一个 ObjectID 引用,而不是引用整个对象来检索,如果我做对了...
这可能吗?或者我应该使用的其他任何东西
最佳答案
嵌入文档不是指向其他文档的指针,它们是数据的独立副本,因此尝试通过嵌入创建自引用对象会导致无限循环产生无限数据。
以 DBRef(数据库引用)形式的 MongoDB 文档之间的链接是“软的”。它们实际上对数据库本身没有任何意义。数据库不强制执行它们,不检查它们的完整性,也不提供任何关注它们的支持。
所以你可以有循环引用。 MongoDB 不在乎。但是需要在应用层自己解决。
一般来说,对于大量使用对其他数据的引用的数据模型,MongoDB 不是一个好的选择。当关系是您数据的重要组成部分时,您可能想看看像 Neo4j 这样的图形数据库。它们使遍历对象关系变得更加容易。
关于mongodb - mongoDB 中是否可以使用循环对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21413864/