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