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