由于自动生成,递增的Id不是存储文档ID的常用方法,我想构建一个将这个长ObjectId转换为5-7长字符串的函数。
我想要完成与YouTube的视频几乎相同的事情,而每个网址都非常简短,他们仍然拥有数十亿的视频。
由于YouTube的视频标识符长度为10个字符,因此我假设我的ID不会超过10m-20m,因此我认为我需要更少的字符。
重要的是,我不需要url minimizer,我需要它用于不同的用途。 是否有任何已知的算法可以解决这个问题?
感谢。
我在想什么?
我正在考虑从ObjectId获取Increment
字段并对其进行操作,但我仍然在寻找那些在多个服务器上是否足够安全的线程以及如果它达到max Int会发生什么情况,如果可能的话。
此外,increment
偶尔重复一次,因此将其视为随机数生成器。
如果相关,将提供任何其他所需信息
答案 0 :(得分:1)
如果您不喜欢,可能根本不需要使用ObjectId。在某些情况下,自动增加的ID很好。人们争论的主要原因是因为您经常以分布式方式使用MongoDB,其中您的表位于多个服务器上的不同数据库中,但每个文档ID在所有这些数据库中应该是唯一的。但