我遇到了一個有線問題,當我使用mongodb存儲數據時,有些數據丟失了,我認爲這是因爲它異步功能在node.js中,如何使用node.js和mongodb在多個級別存儲數據
所以對於這份名單的時間表,我會用重
/*這裏是一個應用程序,其中通過使用train_uid今天, */
var today = new Date();
var day = today.getDay();
scheduleModel.findByTrainAndTime(train_uid,today,function(err, doc){
var a = new Object();
if(err){}
else{
if(doc != null)
{
// mongodb數據庫可以給我一些關於train_id的數據,uid
a.train_uid = doc.train_uid;
a.train_id = train_id;
,最重要的一個列車時刻表時間表,列車時刻表時間表就像進場,離場和tiploc JSON對象的列表(doc.time_schedule)。但是,我需要將tiploc更改爲sanox號碼,該referenceModel可以通過提供tiploc號碼來幫助查找sanox。
//doc.time_schedule
// here is to add a array
所以我用異步,列表中的每個項目,我用referenceModel查詢sanox和構建陣列 - a.timeline存儲每個B,最後當每個異步操作完成,trainModel是用一個sanox對象數組存儲一個對象。然而,當涉及到MongoDB的數據庫,只有sanox對象數組是空的,我想這是因爲異步操作的,但因爲我使用異步,爲什麼它不工作
a.train_uid = doc.train_uid; //works
a.train_id = train_id; works
a.timeline = [] // doesn't work
a.timeline = new Array();
var b ;
async.forEachSeries(doc.time_schedule,
function(item,callback){
referenceModel.findStanoxByTicloc(item.tiploc_code,function(err,sanox){
try{
b = new Object();
b.sanox = sanox;
a.time.push(b);
}catch(err2){
}
});
callback();
},
function(err){
trainModel.createNewTrain(a,function(){});
}
}
});
你究竟在哪裏寫東西到mongo?我沒有看到它 - 我甚至不知道你從Mongo獲取數據的位置以及你將它寫回的位置。您是否可以在上面或下面包含完整的代碼和評論 - 很難閱讀您擁有它的方式。 – 2013-03-10 20:27:02
scheduleModel.findByTrainAndTime,referenceModel.findStanoxByTicloc和trainModel.createNewTrain – user824624 2013-03-10 22:31:12