将_Id存储为MongoDB中的对象或字符串?

时间:2011-10-14 08:08:53

标签: codeigniter mongodb

我正在使用Codeigniter和MongoDB开发API。 在这个系统中,我保存所选用户的用户的全名和_ID 正在跟随。

关于_Id最好做什么?将其存储为对象还是字符串? 如果我将它存储为对象,我需要将其转换为字符串,否则将回显关注者 输出看起来很奇怪。

我的问题确实存在。是否可以将_Id存储为字符串而不是对象? 存储为字符串的缺点是什么?

感谢所有输入!

2 个答案:

答案 0 :(得分:20)

使用objectid,请求(和更新)的性能确实更好。更重要的是,objectid在太空中非常小。

来自官方文件:

  

BSON包含用于存储字节数组的二进制数据数据类型。运用   这将在_id中生成id值及其各自的键   指数,两倍小。

这里有2个可以帮助您的链接: - http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs - http://www.mongodb.org/display/DOCS/Object+IDs

答案 1 :(得分:2)

使用ObjectId时,它会在所有计算机中生成_id作为唯一值。因此,如果您使用Sharding,则不会担心_id个冲突。了解ObjectId如何在specification中生成
但是如果你使用字符串,你应该仔细生成它。