我有while循環在我的代碼和一些如果條件。但它只是做第一輪。這個循環是一個函數的一部分。這裏是我的這部分代碼:雖然循環結束於零
else{
var i = 0;
do{
var resmedid = (result.media[i].mediaid);
var len = result.media.length
if(opts.medid1 == resmedid){
var query = {tokenid: opts.token1}
user.findOneAndUpdate(query, {$pull: {media: {_id: result.media[i]._id}}},function(err, result2){
if (err){
console.error(err);
callback(new Error('System Error'));
return;
}
else{
result = 'updated';
callback(null, result);
return;
}
});
break;
}
if (i == len){
console.log(i = len);
result = 'not match';
callback(null, result);
return;
}
i++;
}
while(i < result.media.length);
};
什麼這個循環的作用是,它正在尋找如果opts.medid1等於在被稱爲result.media數組的字符串。 reesult.media [i] .mediaid是我的數據庫中存在的那些,opts.medid1是我通過url獲得的。
這是怎麼了我的架構looklike:
var userschema = new mongoose.Schema({
userid: {type: String, unique: true},
tokenid: {type: String, sparse: true, default: null},
media: [{
mediaid: String,
mediaurl: String
}]},
{versionKey: false}
);
我在做什麼錯誤導致滯留在第一輪,我是在它0我while循環?
在此先感謝。
謝謝回答我。那裏有'break',因爲如果它找到匹配並將其刪除,我希望它離開循環。我評論了所有的if和else循環,只是做'console.log(i)',它仍然不起作用! –
讓我知道它是否可以解決您的問題。如果問題仍然存在,很高興再次看看。 –
它也不會出現循環!如果我只是把'console.log(i)'放入循環中,它只是打印0! –