arrays - Mongodb query doesn't work -
in image sharing application can upload images , create albums. when delete image site shall deleted in albums (the ones has got image in it).
below route deleting image, , need why code deleting images (imagename , imageid) in albums below doesn't work.
thanks in advance!
the models:
var albumschema = new schema({ title : string, imagename : [string], imageid : [string] }); modelobject.albumschema = albumschema; modelobject.album = mongoose.model('album', albumschema);
-
var blogpostschema = new schema({ name : string, size : number, type : string, author : objectid, title : string }); modelobject.comment = mongoose.model('comment', commentschema); modelobject.blogpost = mongoose.model('blogpost', blogpostschema);
the part doesn't work in code below following:
albums[i].imagename.remove(j); albums[i].imageid.remove(j); albums[i].save(function (err){ if (err) { console.log(err); // } });
full code:
app.get('/blog/delete/:id', function(req, res){ model.blogpost.findbyid(req.params.id, function (err, blog){ var theimage = blog.name; var query = albummodel.album.find( { imagename:theimage } ) query.exec(function (err, albums) { if (!albums) { blog.remove(function(err) { console.log(err); // }); res.redirect('/blogs'); } else { (var = 0; < albums.length; i++) { (var j = 0; j< albums[i].imagename.length; j++){ if (theimage == albums[i].imagename[j]){ albums[i].imagename.remove(j); albums[i].imageid.remove(j); albums[i].save(function (err){ if (err) { console.log(err); // } }); } } } } blog.remove(function(err) { console.log(err); // }); res.redirect('/blogs'); }); }); });
javascript arrays don't have remove
method expect code may crashing. should using code albums[i].imagename.splice(j, 1);
instead.
Comments
Post a Comment