Javascript 猫鼬的id和id有什么区别?
猫鼬的Javascript 猫鼬的id和id有什么区别?,javascript,node.js,mongodb,mongoose,database,Javascript,Node.js,Mongodb,Mongoose,Database,猫鼬的\u id和id有什么区别?哪一个更适合参考?来自: 默认情况下,Mongoose为每个模式分配一个id虚拟getter 它将documents _id字段转换为字符串,或者 对于objectid,它的十六进制字符串 因此,基本上,idgetter返回文档的\u id的字符串表示形式(默认情况下,它添加到所有MongoDB文档中,并具有默认类型ObjectId) 关于引用什么更好,这完全取决于上下文(即,您想要ObjectId还是字符串)。例如,如果比较id,字符串可能会更好,因为Obje
\u id
和id
有什么区别?哪一个更适合参考?来自:
默认情况下,Mongoose为每个模式分配一个id虚拟getter
它将documents _id字段转换为字符串,或者
对于objectid,它的十六进制字符串
因此,基本上,id
getter返回文档的\u id
的字符串表示形式(默认情况下,它添加到所有MongoDB文档中,并具有默认类型ObjectId
)
关于引用什么更好,这完全取决于上下文(即,您想要
ObjectId
还是字符串
)。例如,如果比较id
,字符串可能会更好,因为ObjectId
不会通过平等测试,除非它们是相同的实例(无论它们代表什么值)。请参阅修订的问题,了解什么更适合引用,这完全取决于上下文(例如,您想要ObjectId
还是string
)。例如,如果比较id
,字符串可能更好,因为ObjectId
除非是相同的实例(无论它们代表什么值),否则不会通过平等测试@jmar777 ObjectId确实有一个equals
方法可用于比较。请注意嵌套文档。Mongoose不会将id
virtual分配给嵌套对象,即使它们有一个带有ObjectId的\u id
字段。@EladNava这是否意味着如果您希望一个文档引用另一个文档,您应该是否为引用_id字段的模型指定自定义字段?