最近在做一个node项目,后台使用mongoDB。
发现MongoDB中存在默认主键_id,我也可以自己设置一个序列如mysql那样。
如果使用默认主键的话,返回的JSON字符串里面使用的是_id,这点对前端不怎么友好。
问题是,我是否需要使用自定义主键,考量是什么?
最近在做一个node项目,后台使用mongoDB。
发现MongoDB中存在默认主键_id,我也可以自己设置一个序列如mysql那样。
如果使用默认主键的话,返回的JSON字符串里面使用的是_id,这点对前端不怎么友好。
问题是,我是否需要使用自定义主键,考量是什么?
没有明确的要求让你不要用ObjectId做主键。所以如果你有更好的选择,用你自己的主键就可以了,没有什么不可以。
问题在于,这个_id必须全局唯一,如何达到全局唯一并不是一件容易的事情,所以很多人就掉进了使用自增ID的误区。自增ID是一个非常差的选择,原因我在这个问题里做过解释。如果你的系统中正好能做到全局唯一,又可以避开自增ID的陷阱,那就自定义就好了。
1 回答6.6k 阅读✓ 已解决
1 回答6.1k 阅读✓ 已解决
2 回答1.6k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
835 阅读
一般不用自己定义主键,除非你有特殊的需求