Я пытаюсь регенерировать, если случается так, что шортид находит совпадение из записей пользователей, может кто-нибудь подсказать мне об этом?
let userSchema = new Schema({
agentId: {
type: String,
unique: true,
'default': shortid.generate,
ref: 'user'
}
})
Что-то, с чем я столкнулся, - это предварительная функция для проверки по записи с использованием метода findOne / find
userSchema.pre('save', function(next) {
let ctx = this.agentId
attempToGenerate(ctx, next)
})
function attempToGenerate(ctx, callback) {
let newagentId = shortid.generate()
User.findOne({
'agentId': newagentId
}),
function(err, result) {
if (!result) {
ctx = newagentId
next();
} else {
attempToGenerate(ctx, callback)
}
}
}