Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
在MongoDB中将相关键存储为OID或字符串_Mongodb - Fatal编程技术网

在MongoDB中将相关键存储为OID或字符串

在MongoDB中将相关键存储为OID或字符串,mongodb,Mongodb,我的mongodb设置存储的数据大部分是非规范化的,我存储的用户数据刚好足够,我想在发布时显示。但我仍然会存储相关用户或相关帖子的_id,以便进行投票。一些ID来自ajax调用(最终存储为字符串),而其他ID则直接来自mongodb服务器端(存储在它们来自OID的数据类型中),因此,现在当我保存这些ID时,我将相关ID混合为字符串或OID。我的问题是,我应该将它们全部转换为字符串还是全部转换为OID?objectID。它们更节省空间,ObjectID比较比字符串比较快。您应该始终将传入字符串转换

我的mongodb设置存储的数据大部分是非规范化的,我存储的用户数据刚好足够,我想在发布时显示。但我仍然会存储相关用户或相关帖子的_id,以便进行投票。一些ID来自ajax调用(最终存储为字符串),而其他ID则直接来自mongodb服务器端(存储在它们来自OID的数据类型中),因此,现在当我保存这些ID时,我将相关ID混合为字符串或OID。我的问题是,我应该将它们全部转换为字符串还是全部转换为OID?

objectID。它们更节省空间,ObjectID比较比字符串比较快。您应该始终将传入字符串转换回ObjectId(例如oid=新ObjectId(字符串))。我真的想不出需要字符串的例外情况。

当您的_id来自ajax调用时,它们来自哪里?如果格式不正确,则可能无法转换为OID。例如,密钥名?它们只能是字符串。嗯,想要一个场景,在这个场景中,您有objectid,并且想要有意地将它们转换为字符串,以便您可以将它们用作字段值,这听起来有点像架构问题。但你是对的,这可能是一个原因。不过外面很漂亮;)