【问题标题】:Generate a unique 8-digit number from the _id field (MongoDB/Javasccript)从 _id 字段生成一个唯一的 8 位数字(MongoDB/Javascript)
【发布时间】:2021-02-05 12:00:54
【问题描述】:

我需要为每个用户生成一个唯一的 8 位数字。为此,我可以制作一个随机数并检查它是否已被使用过。但我不认为这是一个好主意。因为随着用户数的增加,对数据库的请求数也随之增加。 由于我使用的是 MongoDB 数据库,因此从 _id 中创建这个唯一编号可能是个好主意。

例如:

6008195dae2ad926a15a4682

像这样成为一个唯一的数字:

83921037

有可能吗?

【问题讨论】:

    标签: javascript node.js mongodb algorithm


    【解决方案1】:

    通常这是不可能的,因为_id 的可能值超过 10^8 个。

    但是您可以使用_id 来生成 0...99999999 范围内的哈希值,然后检查该数字是否尚未使用。如果它已经在使用(=collision),你需要处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多