我正在使用Codeigniter和MongoDB开发API。 在这个系统中,我保存所选用户的用户的全名和_ID 正在跟随。
关于_Id最好做什么?将其存储为对象还是字符串? 如果我将它存储为对象,我需要将其转换为字符串,否则将回显关注者 输出看起来很奇怪。
我的问题确实存在。是否可以将_Id存储为字符串而不是对象? 存储为字符串的缺点是什么?
感谢所有输入!
答案 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中生成
但是如果你使用字符串,你应该仔细生成它。