什么是Mongoose ODM的ObjectId?

Jie*_*eng 3 mongoose mongodb node.js express

看看Mongoose ODM文档,它并没有真正ObjectId's说明它们的用途和方式.我认为它像MongoDB中的外键?

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

Ste*_*nie 11

对于MongoDB概念的一些背景,阅读MongoDB文档或快速MongoDB简介(例如The Little MongoDB Book(它是免费的)是非常值得的.

回答你的问题:

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

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

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

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