मेरी छवि साझाकरण एप्लिकेशन में आप एल्बम बना सकते हैं और उन्हें छवियां जोड़ सकते हैं। जब साइट से कोई छवि हटा दी जाती है, तो उसे उस एल्बम (एल्बम) से हटा दिया जाना चाहिए जो छवि (नाम, आईडी) के संदर्भ संग्रहीत करता है।किसी सरणी फ़ील्ड में एक मिलान ढूंढना
जिस चीज की मुझे आवश्यकता है, वह यह जानने के लिए है कि किस एल्बम ने छवि (संदर्भ) को हटाया है जिसे हटाया जा रहा है।
नीचे दिए गए मार्ग में मैंने अभी तक कोशिश की है, लेकिन मुझे क्वेरी पर एक त्रुटि मिली है। मैं 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');
}
});
});
});
बहुत अच्छा जवाब (+1)। यह एक और लिंक है जिसे मैंने पाया http://docs.mongodb.org/manual/tutorial/query-documents/#match-an-array-element – Tom
धन्यवाद टॉम ___;) – coiso
लिंक अब मर चुका है। – Neta