尝试循环播放所有已更新的字段,并在保存之前动态更新它们。
Product.findOne({ _id: productNewData['_id'] }, function (err, doc) {
for (var key in productNewData) {
# what do I do here?
}
doc.save();
});
我知道ruby有这样的发送方法:
doc.send(key) = productNewData[key]
我想我可以验证给定的参数并使用eval
。还有其他办法吗?
答案 0 :(得分:10)
它们是在Javascript中访问属性的两种方式: 使用点表示法或括号。例如:
var foo = {bar: 42}
foo.bar // 42
foo["bar"] // 42
var v = "bar"
foo[v] // 42
foo.v // undefined
所以:
Product.findOne({ _id: productNewData['_id'] }, function (err, doc) {
for (var key in productNewData) {
doc[key] = productNewData[key]
}
doc.save();
});