查看Mongoose ODM docs,它并没有真正说明ObjectId's
是什么以及如何使用它们。我认为它像MongoDB中的外键?
如果是这样,嵌入式文档似乎达到了同样的目的,我什么时候使用哪个?
答案 0 :(得分:9)
对于MongoDB概念的一些背景,阅读MongoDB文档或快速MongoDB简介(例如The Little MongoDB Book(它是免费的)是非常值得的。
回答你的问题:
ObjectID是一个唯一的12字节标识符,可以由MongoDB生成,作为集合的主键(_id
)。有specification for the ObjectID。
DBRef (database reference)是引用另一个集合中的对象的ObjectID。 DBRef确实需要另一个查询来获取相关对象,并且是客户端驱动程序而不是MongoDB服务器支持的约定。 Mongoid等价物称为referenced relations。
Embedded documents是文档中的嵌套数组或子文档。在Mongoid中,这些是embedded relations。
MongoDB中data modelling and schema design的方法与关系数据库非常不同。 (有意)没有连接或外键,但面向文档的方法允许在单个文档中存储和提取大量相关数据。根据您计划查询和更新数据的方式,嵌入或链接可能是更合适的选择。 MongoDB wiki上的schema design页面提供了一些有用的提示,可帮助您入门。