由于业务需要,我们需要知道dcloud平台的表中自动生成的_id的规则,以避免后续插入的数据与之前的数据的_id造成冲突
例,目前已知:
_id 63d8a84ff43e60b2bad3ab1f
其中通过观察,一共 24个字符,开始的8个字符为10进制时间戳的16进制形式,
如 63d8a84f ---> 1675143247 ---> 2023-01-31 13:34:07
问题为:24位中,剩余的16位 f43e60b2bad3ab1f 的生成规则是什么呢?
由于业务需要,我们需要知道dcloud平台的表中自动生成的_id的规则,以避免后续插入的数据与之前的数据的_id造成冲突
例,目前已知:
_id 63d8a84ff43e60b2bad3ab1f
其中通过观察,一共 24个字符,开始的8个字符为10进制时间戳的16进制形式,
如 63d8a84f ---> 1675143247 ---> 2023-01-31 13:34:07
问题为:24位中,剩余的16位 f43e60b2bad3ab1f 的生成规则是什么呢?
如果你想问id是否有顺序,可否用来排序,建议还是自己创建一个时间戳字段用来排序靠谱,因为id不可控,同时腾讯云和阿里云空间的id位数还不一样,生成规则也不一样,因此建议还是自己创建一个时间戳字段用来排序靠谱
云开发接单 - 专攻云开发,有云开发的小单子可找我
阿里云就是mongodb的生成规则阿
_Id是一个12字节的 BSON 类型字符串。按照字节顺序,一次代表:
4字节:UNIX时间戳
3字节:表示运行MongoDB的机器
2字节:表示生成此_id的进程
3字节:由一个随机数开始的计数器生成的值
腾讯云是自研的数据库,但原理也差不多阿
1***@qq.com (作者)
好的,感谢回复
2023-02-05 16:30