猫鼬自动增加

时间:2015-11-19 08:50:03

标签: node.js mongodb mongoose-populate

我有一个模型: 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,如何改进此代码。

非常感谢你。

0 个答案:

没有答案