Ich habe while-Schleife in meinem Code und einige wenn Bedingungen drin. aber es macht nur die erste Runde. Diese Schleife ist ein Teil einer Funktion. Hier ist mein Code für diesen Teil:While-Schleife endet bei Null
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);
};
Was diese Schleife macht, ist, dass es sucht, wenn opts.medid1 in einen String in einem Array gleich ist, die result.media genannt wird. reesult.media [i] .mediaid sind die, die in meiner Datenbank existieren und das opts.medid1 ist das, was ich von der URL bekomme. Diese
ist, wie mein Schema 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}
);
Was mache ich falsch meine while-Schleife in der ersten Runde stecken zu verursachen, die i 0 drin ??
Vielen Dank im Voraus.
Vielen Dank für mich zu beantworten. das "break" gibt es, weil ich möchte, dass es aus der Schleife kommt, wenn es das Match gefunden und gelöscht hat. Ich habe das ganze if und else in der Schleife kommentiert und mache einfach 'console.log (i)' und es funktioniert immer noch nicht !! –
Lass es mich wissen, wenn es dein Problem löst. Gerne noch einmal schauen, ob das Problem noch da ist. –
auch kommt es nicht aus der Schleife !! wenn ich nur 'console.log (i)' in die Schleife setze, drucke einfach 0! –