ShortId从findOne方法检查唯一值

时间:2019-06-22 16:45:41

标签: mongodb mongoose mongoose-schema

如果短号碰巧从用户记录中找到匹配项,我正在尝试重新生成,有人可以指导我吗?

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)
        }
    }
}

0 个答案:

没有答案