В моем приложении для совместного использования изображений вы можете создавать альбомы и добавлять к ним изображения. Когда изображение удаляется с сайта, оно также должно быть удалено из альбома (альбомов), в котором хранятся ссылки на изображение (имя, идентификатор).
Мне нужна помощь в том, чтобы найти альбомы, которые сохранили изображение (ссылку), которое должно быть удалено.
В приведенном ниже маршруте я попытался до сих пор, но я получаю сообщение об ошибке. Я проверил документы Mongodb, и синтаксис выглядит следующим образом:
db.collection.find( { field : { $in : array } } );
В моем маршруте поле и массив имеют переключаемые места, которые, похоже, не работают.
Я бы очень признателен за помощь. Спасибо заранее!
Мои модели выглядят следующим образом:
var AlbumSchema = new Schema({
title : String,
imageName : [String], <-- array the contains of images names
imageId : [String] <-- array the contains of images id's
});
modelObject.AlbumSchema = AlbumSchema;
modelObject.Album = mongoose.model('Album', AlbumSchema);
var ImageSchema = new Schema({
name : String,
size : Number,
type : String
});
modelObject.ImgSchema = ImgSchema;
modelObject.Image = mongoose.model('Image', ImgSchema);
Маршрут для удаления изображения:
app.get('/blog/delete/:id', function(req, res){
model.ImagePost.findById(req.params.id, function (err, blog){
var theImage = blog.name;
if (err) {
console.log(err);
// do something
}
var query = albumModel.Album.find( { imageName: { $in : theImage } } );
query.exec(function (err, albums) {
if (!albums) {
console.log(err);
// do something
blog.remove(function(err) {
console.log(err);
// do something
});
res.redirect('/blogs');
}
else {
// code for removing the image(s) in the albums
res.redirect('/blogs');
}
});
});
});