【发布时间】:2013-03-21 09:29:55
【问题描述】:
猫鼬中的_id 和id 有什么区别?哪个更适合参考?
【问题讨论】:
标签: javascript node.js mongodb mongoose database
猫鼬中的_id 和id 有什么区别?哪个更适合参考?
【问题讨论】:
标签: javascript node.js mongodb mongoose database
默认情况下,Mongoose 会为您的每个模式分配一个 id virtual getter 它将文档 _id 字段转换为字符串,或者在这种情况下 ObjectIds,它的 hexString。
因此,基本上,id getter 返回文档_id 的字符串表示形式(默认情况下添加到所有 MongoDB 文档中,默认类型为 ObjectId)。
关于什么更适合引用,这完全取决于上下文(即,您想要ObjectId 还是string)。例如,如果比较 id's,字符串可能更好,因为ObjectId's 不会通过相等性测试,除非它们是相同的实例(不管它们代表什么值)。
【讨论】:
ObjectId 还是string)。例如,如果比较id's,字符串可能更好,因为ObjectId's 不会通过相等性测试,除非它们是相同的实例(不管它们代表什么值)。
equals 方法,可用于比较。
id 虚拟分配给嵌套对象,即使它们有一个带有 ObjectId 的 _id 字段。