著者の回答に似ていますが、ループバックの方法を使用して私のアプローチを共有したいと思います。あなたはこのモデルに必要な数のシーケンスを記憶することができます
{
"name": "sequence",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"value": {
"type": "number",
"required": true
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
: は、ここで私が作成したSequence
モデルです。それから私は、私は、このスクリプト(この場合はorder
シーケンス)で必要なシーケンスを作成します。
var app = require('./server/server');
var Sequence = app.models.Sequence;
Sequence.findOrCreate({
where: {
name: 'order'
}
}, {
name: 'order',
value: 0
}, function (err) {
if (err) {
console.log(err);
}
process.exit();
});
は今、毎回私が最初に私がそのvalue
を増分することによってSequence
モデルでorder
レコードを更新、オーダーを作成するために、注文番号が必要とそれを使用してください:
var Sequence = Order.app.models.Sequence;
Sequence.findOne({
where: {
name: 'order'
}
})
.then(function (orderNumber) {
orderNumber.value++;
return orderNumber.save();
})
.then(function (orderNumber) {
Order.upsert({
orderNumber: orderNumber.value,
...
});
});
乾杯!
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ – Brian
@Brianさん、ありがとうございました。 – Warren