Tôi muốn chia sẻ phương pháp tiếp cận của mình, tương tự như câu trả lời của tác giả, nhưng bằng cách sử dụng các phương pháp của Loopback. Dưới đây là mô hình Sequence
Tôi đã tạo:
{
"name": "sequence",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"value": {
"type": "number",
"required": true
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
Bạn có thể lưu trữ như nhiều trình tự như bạn muốn trong mô hình này. Sau đó, tôi tạo ra một chuỗi tôi cần với kịch bản này (trong trường hợp này order
chuỗi):
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();
});
Bây giờ mỗi khi cần số để tạo ra một trật tự, đầu tiên tôi cập nhật các bản ghi order
trong Sequence
mô hình bằng cách tăng nó value
và sau đó sử dụng nó:
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,
...
});
});
Chúc mừng!
Nguồn
2015-12-18 09:30:31
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ – Brian
Cảm ơn @Brian, Điều đó khiến tôi bắt đầu đi đúng hướng. – Warren