首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ObjectId到唯一的短字符串

ObjectId到唯一的短字符串
EN

Stack Overflow用户
提问于 2016-11-09 15:21:34
回答 1查看 521关注 0票数 1

由于自动生成的增量Id并不是存储文档Id的常用方法,所以我希望构建一个函数,将这个长ObjectId转换为5-7长字符字符串。

我想和YouTube一样处理它的视频,而每个url都很短,而且仍然有数十亿的网址。

因为YouTube的视频标识符有10个字符长,所以我想我不会有超过1000万到2000万个is,因此我认为我需要的字符要少得多。

重要的是,我不需要url最小化器,我需要它的不同用途。有什么已知的算法可以解决这个问题吗?

谢谢。

我怎么想的?我正在考虑从Increment中获取ObjectId字段并对其进行操作,但我仍然在寻找跨多个服务器的线程是否足够安全,如果可能的话,如果到达最大Int会发生什么情况。

而且,increment偶尔会重复一次,所以使用它就像随机数生成器一样。

将提供任何其他所需的信息,如果相关的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-09 17:06:30

如果你不喜欢的话,也许你根本不需要使用ObjectId。在某些情况下,自动递增id是很好的。人们反对这一点的主要原因是,您经常以分布式的方式使用MongoDB,您的表位于多个服务器上的单独数据库中,但是每个文档id在所有这些数据库中都应该是唯一的。但

  1. 有时你根本不打算这样做(切分),所以你不关心唯一性问题。
  2. 您可以使用(您自己的)一些服务来生成顺序唯一的id。是的,这是有一些完善的考虑,但这可能不是一个问题,在你的特殊情况。
  3. 你可以自己分裂你的身份序列。例如,您预计最多会有2000万个项目。因此,第一个碎片将使用序列0-20m作为id字段。第二个碎片将使用20m-40m (所以,从id =20.000.000开始),依此类推。这样,您就可以满足所有将来的切分需求(如果您有任何需求的话)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40510396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档