我有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! –