Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 猫鼬的id和id有什么区别?_Javascript_Node.js_Mongodb_Mongoose_Database - Fatal编程技术网

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字段的模型指定自定义字段?