mongoose中id和_id有什么区别?

Ari*_*rad 46 javascript database mongoose mongodb node.js

_idid猫鼬有什么区别?哪个更适合引用?

jma*_*777 75

文档:

Mongoose默认情况下为每个模式分配一个id虚拟getter,它返回文件_id字段强制转换为字符串,或者对于ObjectIds,返回其hexString.

因此,基本上,idgetter返回文档的字符串表示形式_id(默认情况下将其添加到所有MongoDB文档中,并具有默认类型ObjectId).

关于什么是更好的参考,这完全取决于上下文(即,你想要一个ObjectId或一个string).例如,如果比较id's,字符串可能更好,因为ObjectId除非它们是同一个实例(不管它们代表什么值),否则不会通过相等测试.

  • @ jmar777 ObjectId确实有一个`equals`方法,可用于比较. (4认同)