मैं अपने सिर को खरोंच कर रहा हूं, सामान्य रूप से यह नोड परियोजनाओं के साथ लगता है, और मुझे यकीन नहीं है कि मैं कुछ गलत कर रहा हूं या यदि मैं एक बग में चला गया हूं।मोंगोस एम्बेडेड दस्तावेज़ों को नहीं हटाएगा
मुझे सर्वर की एक स्कीमा मिली है जिसमें सेवाओं नामक एम्बेडेड दस्तावेज़ों की संख्या हो सकती है। हालांकि मैं एक समस्या में भाग रहा हूं, हालांकि, मैंने सर्वर ऑब्जेक्ट से व्यक्तिगत सेवा को सफलतापूर्वक हटा दिया है, जब भी मैं इसे सहेजने के लिए कहता हूं, इसे डेटाबेस से नहीं हटाता है। सेव फ़ंक्शन काम कर रहा है क्योंकि यह मेरे द्वारा किए गए किसी भी बदलाव को सहेज रहा है और नए एम्बेडेड डॉक्स में भी धक्का दे रहा है, यह सिर्फ पहले से मौजूद नहीं है।
app.put('/server/:id', function(req, res, next){
app.Server.findOne({_id: req.params.id}, function(err, server) {
server.updated = new Date();
...
for (var num = _.size(req.body.server.services) - 1; num >= 0; num--){
// Is this a new service or an existing one
if (server.services[num]) {
// Is it marked for deletion? If so, delete it
if (req.body.server.services[num].delete == "true") {
server.services[num].remove()
} else { // else, update it
server.services[num].type = req.body.server.services[num].type
...
}
} else {
// It's new, add it
delete req.body.server.services[num]["delete"]
server.services.push(req.body.server.services[num]);
}
}
server.save(function(err){
if (!err) {
req.flash('success', 'Server updated')
} else {
req.flash('error', 'Err, Something broke when we tried to save your server. Sorry!')
console.log(err)
}
res.redirect('/')
});
})
});
तो निकालें() वास्तव में सेवा को हटा रहा है:
यहाँ मेरी कोड की एक अपेक्षाकृत सरल उदाहरण है। अगर मैं सहेजने से पहले server.toObject() करता हूं, तो यह वहां नहीं है। कोई विचार यह डेटाबेस से इसे हटाए जाने पर क्यों नहीं हटाएगा?
संपादित करें: मुझे लगता है कि संस्करण संख्या उपयोगी होगी। [email protected], [email protected] [email protected]
मुझे एक ही समस्या है। – Carlosedp