【发布时间】:2015-05-20 15:51:03
【问题描述】:
我正在创建一个实时股票交易系统,并希望为用户提供一种可读、用户友好的方式来参考他们的订单。例如,ID 应该是 8 个字符长,并且只包含大写字符,例如Z9CFL8BA。由于显而易见的原因,id 在系统中必须是唯一的。
我使用 MongoDB 作为后端数据库,并评估了以下不符合我要求的项目。
hashids.org - 这看起来不错,但它生成的 id 太长:
var mongoId = '507f191e810c19729de860ea';
var id = hashids.encodeHex(mongoId);
console.log(id)
导致:1E6Y3Y4D7RGYHQ7Z3XVM4NNM
github.com/dylang/shortid - 这要求您指定 64 个字符的字母表,并且如前所述,我只想使用大写字符。
我知道,实现我正在寻找的唯一方法很可能是生成满足我要求的随机代码,然后检查数据库是否存在冲突。如果是这种情况,在 nodejs / mongodb 环境中执行此操作的最有效方法是什么?
【问题讨论】: