我希望我的一个模型中的唯一 _id 字段相对较短:8 个字母/数字,而不是通常更长的 Mongo _id。像这样有一个简短的唯一索引有助于我的代码的其他地方,原因我将跳过这里。我已经成功创建了一个可以解决问题的模式(randomString 是一个生成给定长度字符串的函数):
new Schema('Activities', {
'_id': { type: String, unique: true, 'default': function(){ return randomString(8); } },
// ... other definitions
}
到目前为止效果很好,但我担心从 randomString 函数生成的重复 ID。有 36^8 个可能的 ID,所以现在这不是问题......但是随着可能的 ID 集填满,我担心插入命令由于重复 ID 而失败。
显然,我可以做一个额外的查询来检查在插入之前是否获取了 ID……但这让我在里面哭泣。
我确信有更好的方法可以做到这一点,但我没有在文档中看到它。