背景与问题
mongodb采用了一个称之为ObjectId的类型来做主键。ObjectId是一个12字节的 BSON 类型字符串.按照字节顺序,依次代表:
4字节:UNIX时间戳;
3字节:表示运行MongoDB的机器;
2字节:表示生成此_id的进程;
3字节:由一个随机数开始的计数器生成的值;
但在某些情况下,我们可能需要id字段具备自增的功能。由于 MongoDB 没有实现这个功能,我们需要额外编写代码来实现该功能。
解决思路
我们可以新建一张表,然后这张表有两个字段collectionName和value,collectionName表示表的名称,value表示该表当前的最大主键值,因此在每次插入数据时我们只需要获取value+1便是新的主键值了,同时不要忘了更新value字段的值
实现代码
1 |
|