【问题标题】:mongodb database referencemongodb数据库参考
【发布时间】:2012-08-30 12:41:55
【问题描述】:

我是 mongodb 的新手。我需要使用主键和外键概念链接两个集合,例如在关系数据库中的一个。

我知道 mongodb 不支持连接。

comments
 { uid:12345, pid:444, comment="blah" }
 { uid:12345, pid:888, comment="asdf" }
 { uid:99999, pid:444, comment="qwer" }

users
 { uid:12345, name:"john" }
 { uid:99999, name:"mia"  }

在 cmets 集合中,uid --> 主键,在用户中,uid--> 外键。

在 mongodb 中插入集合时如何解决这种关系? 如何引用它?

你能把 mongodb 命令发给我吗?

【问题讨论】:

  • 无法加入 MongoDB 集合。你想提供什么功能?
  • 我可以知道在mongodb中链接(dbref)的目的是什么吗?不是为了保证主键和外键的关系吗?我的功能是通过加入这两个集合来查询字段?
  • 它不能保证任何事情。 DBRef 完全符合名称的含义。它提供对文档的跨数据库、跨集合引用。它只是一种存储约定,没有任何类型的服务器功能支持。

标签: mongodb mongodb-java


【解决方案1】:

使用 MongoDB 时的一个常见新手错误是将其视为关系数据库。

在 MongoDB 中您通常不需要自己的 ID,因为每个文档都会自动具有 _id 字段(这是一个 GUID)。

要引用 MongoDB 中的另一个实体,您可以使用 DBRef 对象。因此,每个评论文档都应该有一个字段“作者”,它是用户集合中文档的 DBRef。或者,您可以只使用要引用的对象的 GUID 作为“作者”的值。

详情请见http://docs.mongodb.org/manual/applications/database-references/

关于将文档及其引用的文档放在一起:您必须在加载文档时在应用程序级别执行此操作。 MongoDB Java 驱动程序中的 DBRef 类具有 fetch() 方法,该方法自动获取它引用的文档。这使得实现起来非常简单。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2020-06-20
    • 2017-07-25
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多