1

我有一个模型:OrderEventSchema

var OrderEventSchema = new Schema(
    {
        orderId:        { type: String, required: true },
        sequence:       { type: Number },
        workflowId:     { type: String, required: true },
        type:           { type: String },
        transitionId:   { type: String },
        placeId:        { type: String },
        eventType:      { type: String },
        payLoad:        { type: Schema.Types.Mixed }
    }, options
);

处理后保存:

OrderEventSchema.post('save', function(doc) {
    getNextSequence(doc.orderId)
        .then(function(nextSequence) {
            doc.sequence = nextSequence;
            doc.save();
        })
})

function getNextSequence (orderId) {
    return new Promise(function(resolve, reject) {
        orderEvent.findOne({
            orderId             : orderId
        }).sort({'sequence' : -1}).limit(1).exec(function(err, doc) {
            if (err) {
                reject(err);
            } else {
                resolve(doc.sequence ? doc.sequence + 1 : 1);
            }
        });
    })
}

现在,我保存的所有内容都会无限循环,任何人都可以帮助我,如何在sequence不使用其他模块的情况下增加,如何改进此代码。

太感谢了。

4

0 回答 0