根据文档,Mongoose 默认为每个模式分配一个 id 虚拟 getter。该 getter 返回将文档的 _id 字段强制转换为字符串后的值,对于 ObjectIds,则返回其 hexString。因此,基本上,id getter 返回文档的 _id 的字符串表示形式(_id 是 MongoDB 文档默认添加的,具有默认类型 ObjectId)。关于什么更适合引用,这完全取决于上下文(例如,你想要 ObjectId 还是字符串)。例如,如果比较 id,那么字符串可能更好,因为 ObjectId 将不会通过等值测试,除非它们是相同的实例(而与它们表示的值无关)。
ObjectId
还是一个string
)。例如,如果比较 id,则字符串可能更好,因为除非它们是相同的实例(无论它们代表什么值),否则 ObjectId 不会通过等式测试。 - jmar777equals
方法,可用于比较。 - Lucky Soni_id
字段,Mongoose也不会将id
虚拟分配给它们。 - Elad Nava_id
字段读取并将其从ObjectId
转换为string
。 - Elad Nava