Desidero condividere il mio approccio, che è simile alla risposta dell'autore, ma utilizzando i metodi di Loopback. Qui è il modello Sequence
ho creato:
{
"name": "sequence",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"value": {
"type": "number",
"required": true
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
È possibile memorizzare il maggior numero di sequenze che si desidera in questo modello. Poi creo una sequenza ho bisogno con questo script (in questo caso order
sequenza):
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();
});
Ora ogni Devo numero d'ordine per creare un ordine, per prima cosa aggiornare il record order
in Sequence
modello incrementando la sua value
e quindi usalo:
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,
...
});
});
Cheers!
fonte
2015-12-18 09:30:31
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ – Brian
Grazie a @Brian, questo mi ha fatto partire lungo la strada giusta. – Warren