Bir modelin özellik değerini artırmaya yönelik yerleşik bir yol var mı Strongloop loopback? Bu model orderNumber adlı bir özelliğe sahiptir ve 1'den başlayıp 1'i her yeni model oluşturulduğunda 1'e yükseltmek istiyorum. Bu model bir Mongo DB'ye devam ediyor. Eğer Strongloop geridönüşü yerleşik bir yapıda değilse, javaScript, Node ve mongoDB kullanarak en iyi uygulama hangisi olurdu?Otomatik, Strongloop geridönüşüm modelinde bir özellik değerini artırır
cevap
Tamam
sayesinde, çözüm çalışmaları ama Loopback atlayarak ediyorum ve "mongoDB bağlayıcı" Bu. İşte ben yapıyorum.
şöyle bir modeli adında sırası Verilen: Ben yapıyorum
{
"_id": {
"$oid": "54ab3ec0cc074e24144f26d7"
},
"collection": "SpecialOrder",
"value": 113
}
: Bir Bunu yapmanın LoopbackJS şekilde inşa edilmelidir gibi
mongoConnector = app.dataSources.MyMongoDBConnectorName.connector;
mongoConnector.collection("Sequence").findAndModify({collection: 'SpecialOrder'}, [['_id','asc']], {$inc: { value: 1 }}, {new: true}, function(err, sequence) {
if(err) {
console.log(err.message);
} else {
// Do what I need to do with new incremented value sequence.value
}
});
görünüyor. Sadece bir değeri arttırmak için geçecek çok şey var.
sayesinde
Warren Bell
ama Postgres ile aynı sorun var. Sadece 'id' sütununu el ile veritabanında değiştirerek düzeltildi (Postgres'de otomatik artış anlamına gelen SERIAL türünü ayarlayın). Sanırım sorun bu şekilde herhangi bir veritabanında çözülebilir.
Yazarımın yanıtına benzer olan, ancak Loopback yöntemlerini kullanan yaklaşımımı paylaşmak istiyorum. Bu modelde istediğiniz kadar birçok dizileri saklayabilirsiniz
{
"name": "sequence",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"value": {
"type": "number",
"required": true
}
},
"validations": [],
"relations": {},
"acls": [],
"methods": []
}
: İşte oluşturduk Sequence
modelidir. Sonra o senaryoya sahip gereken bir diziyi (bu durumda order
dizisi) oluşturmak: her ben ilk ben artırarak Sequence
modelinde order
kaydı güncelleştirmek, Sipariş oluşturmak için sipariş numarasını ihtiyaç Şimdi
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();
});
onun value
ve o zaman kullanın:
Şerefe!
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ – Brian
Teşekkürler @Brian, Bu beni doğru yola koydu. – Warren