mongodb - mongoDB 中是否可以使用循环对象引用?

标签 mongodb mongoose

我正在尝试获取一个 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/

相关文章:

javascript - Mongoose.js 通过一次 connect() 调用创建与 MongoDB 的多个连接

javascript - 使用变量获取位置然后修改mongodb中的特定对象

ruby-on-rails - 如何在时间戳中转换字符串(时间或日期时间)并保存在mongodb中

c# - 将 MongoDB 文档转换为对象的 c# 列表

C# MongoDB 驱动程序 : Can't find the way to run complex query for AnyIn filter in MongoDB

mongodb - 带有 Spring Data Mongo 聚合的游标

node.js - Mongoose 模型 $in 查询不起作用

java - 使用 MongoDB 进行单元测试

node.js - 如何使用 Node JS 将 mongoDB 查询记录到终端

javascript - Mongoose 中的保存方法失败