अपडेट करने में असमर्थ मेरे पास एक अजीब मुद्दा है जो मुझे परेशान कर रहा है।mongoose मॉडल
var Model = new Schema({
name: String,
variations: Array
});
विविधताओं प्रविष्टि इस प्रकार है:: मैं एक मॉडल है
[ {code: '', price: '' }, {code: '', price: '' }]
मैं एक नए क्षेत्र जोड़ने की जरूरत है - कहते हैं कि "रंग"। इसलिए मैं बैच अद्यतन करने के लिए यह कर रहा हूं:
Model.find().exec(function(err, products) {
if (!err) {
products.forEach(function(p) {
for(var i = p.variations.length - 1; i >= 0; i--) {
p.variations[i]['color'] = 'red';
// This shows all existing variations
// with the new color feed - correct
console.log(p.variations[i]);
}
p.save(function(err) {
if (!err) {
console.log("Success");
} else {
console.log(err);
}
});
});
}
});
हालांकि "रंग" क्षेत्र सेट नहीं है - अगर मैं के माध्यम से फिर से जाने के लिए और p.variations[i]['color'] = 'red';
लाइन बाहर टिप्पणी तो यह नहीं दिखाती है। मुझे यह पता लगाना प्रतीत नहीं होता कि यह ऐसा क्यों कर रहा है। मेरे पास एक ऑनसेव इवेंट है जो सही ढंग से ट्रिगर किया गया है, इसलिए यह बचत हो रहा है। मेरे पास विविधता संरचना पर कोई भी जांच नहीं है - यानी कोई कोड नहीं है जो केवल कोड और मूल्य की अनुमति देता है। मुझे कुछ याद आ रहा है लेकिन कुछ घंटों के बाद मैं विचारों से बाहर हो गया।
यह भी सच है यदि आप किसी भी गहरे ऑब्जेक्ट्स को ढीले टाइप किए गए स्कीमा (mongoose.Schema.Types.Mixed) के साथ उपयोग करते हैं। और मोंगोस 4.5.8 के रूप में, उपर्युक्त विधि (मार्कमोडिफाइड) अभी भी ऐसा करने के लिए एक कार्यप्रणाली है। – SylonZero