我有一个奇怪的问题让我感到困惑。我有一个模型:
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';
行,则它不会显示。我似乎无法弄清楚它为什么这样做。我有一个正确触发的 onSave 事件,因此它正在保存。我也没有对变体结构进行任何检查——即没有只允许代码和价格的代码。我显然错过了一些东西,但几个小时后我的想法就用完了。