可以用mongo自动生成的_id实现自增,使集合有序么?
发布于 10 年前 作者 Outining 4453 次浏览 最后一次编辑是 8 年前 来自 问答

查了一些资料,说做为 _ id 的默认类型ObjectId,由于前四位是时间戳的存在,所以“大致”有序。 这是不是说明默认的 _ id 不能保证绝对有序? 但我发现ObjectId的后3位是一个自增计数器,来保证一秒内的唯一。 那么,是不是可以利用前四位的时间戳和后四位的自增计数器来使集合有序排列呢? 或者,只能自定义一个自增id来做有序集合 希望有经验的同学指点,非常感谢!!

6 回复

帮我指条明路,谢谢大家,哈哈

最近也碰到相似的需求,帮顶 自豪地采用 CNodeJS ionic

mongo天生是为分布式系统设计,自增id一旦考虑分布式就不是个简单的东西了,所以尽量避免使用这种东西,实在需要就只能根据具体业务需要自己设计算法了

@DavidCai1993 自己设计的算法?CNodeJS ionic和这个问题有啥联系呢?谢谢

@Outining "CNodeJS ionic"只是移动端CNode社区的一个小尾巴,跟"来自土豪金ip6"这样的小尾巴一样。 3楼说得很对,就是采用object可以比较省事解决处于分布式部署下的唯一性问题(除非自己去实现)。 如果你的业务不需要考虑到Sharding(分片),可以自定义个自增id。

@fanghongjia 多谢,我们的项目不考虑分片,我自己做了一个自增id

回到顶部