Aşağıdaki kod, masraflar ve yapılan işler ile ilgili bilgileri bir fatura veritabanına toplayan bir etkinliktir. Bu süreci her çalıştırdığımda faturalar veritabanına 2 giriş alıyorum. İlk giriş her zaman boş ve ikincisi istediğim girişlere sahip.Meteor, mongo veritabanına çift ekleniyor
'click .ConfirmCloseCase': function (event) {
var caseID = Session.get('CurrentClosingCaseID');
var TasksToChange = Tasks.find({caseID:caseID,done:true,billed:false});
var ExpensesToChange = Expenses.find({caseID:caseID,billed:false});
// Create new Entry into bills Database
Bills.insert({"expensestotal":0,"taskstotaltime":0}, function(error, result) {
// Set all Tasks to billed
TasksToChange.forEach(function(task){
Tasks.update(task._id, {$set: {"billed": true} })
Meteor.call('BillsUpsert', result, {$push: {"tasks": task._id}});
Meteor.call('BillsUpsert', result, {$inc: {"taskstotaltime": task.hours}});
})
// Set all Expenses to billed
ExpensesToChange.forEach(function(expense){
Expenses.update(expense._id, {$set: {"billed": true} })
Meteor.call('BillsUpsert', result, {$push: {"expenses": expense._id}});
Meteor.call('BillsUpsert', result, {$inc: {"expensestotal": expense.amount}});
})
Router.go('/Bills');
})
},
Meteor çağrı böylece gibidir:
Meteor.methods({
BillsUpsert: function(id, doc){
Bills.update(id, doc);
}
});
ben kod uyumsuz çalıştığı nedeni veritabanına 2 girdileri alıyorum bunu tahmin listem. Bu doğru bir varsayım mı? ... ve bir takip olarak "kolay" bir düzeltme var mı? :)
Çalıştığınız için teşekkür ederiz @Michael Floyd. lütfen cevabımı gör. Zamanını boşa harcadığım için gerçekten ağlıyorum. Eklenen büyük paketler: Collection2, simpleschema vb. Birleşiminden dolayı müşteri kodumda eklerim ve güncellemelerim var. – Gsuz