3

查看Mongoose ODM 文档,它并没有真正说明它们是什么ObjectId's以及如何使用它们。我认为它类似于 MongoDB 中的外键?

如果是这样,嵌入式文档似乎可以达到相同的目的,我什么时候使用哪个?

4

1 回答 1

13

阅读 MongoDB 文档或快速 MongoDB 介绍(例如The Little MongoDB Book(它是免费的))以了解有关 MongoDB 概念的一些背景知识是非常值得的。

要回答您的问题:

  • ObjectID是一个唯一的 12 字节标识符,可以由 MongoDB 作为_id集合的主键 ( ) 生成。ObjectID有一个规范

  • DBRef(数据库引用)是引用另一个集合中的对象的 ObjectID 。DBRef 确实需要另一个查询来获取相关对象,并且是客户端驱动程序而不是 MongoDB 服务器支持的约定。Mongoid 等价物称为引用关系

  • 嵌入文档是文档中的嵌套数组或子文档。在 Mongoid 中,这些是嵌入的关系

MongoDB 中的数据建模和模式设计方法与关系数据库非常不同。(有意)没有连接或外键,但面向文档的方法允许在单个文档中存储和获取大量相关数据。根据您计划查询和更新数据的方式,嵌入或链接可能是更合适的选择。MongoDB wiki 上的模式设计页面有一些帮助您入门的有用技巧。

于 2012-07-15T10:49:38.210 回答