Node.js + Mongoose/Mongo和缩短的_id字段

Zan*_*aes 1 mongoose mongodb node.js

我希望我的一个模型中的唯一_id字段相对较短:8个字母/数字,而不是通常的Mongo _id,它更长.像这样的短唯一索引有助于我的代码中的其他地方,因为我将跳过这里.我已经成功创建了一个可以实现技巧的模式(randomString是一个生成给定长度字符串的函数):

new Schema('Activities',  {
    '_id': { type: String, unique: true, 'default': function(){ return randomString(8); } },   
    // ... other definitions
}
Run Code Online (Sandbox Code Playgroud)

到目前为止这很好用,但我担心从randomString函数生成的重复ID.有36 ^ 8个可能的ID,所以现在它不是问题...但是随着可能ID的集合填满,我担心插入命令由于重复ID而失败.

显然,我可以做一个额外的查询,以检查ID是否在插入之前被拍摄...但这让我内心哭泣.

我确信有更好的方法可以做到这一点,但我没有在文档中看到它.

Kru*_*rut 5

这个短小的lib https://github.com/dylang/shortid正在被Doodle或Die使用,似乎正在进行战斗测试.