我想写一个函数,循环和改变一个字段在多个文档在同一时间。唯一的问题是,当我传递一个参数值时,摇篮合并似乎实际上传递了一个带有参数名称而不是值的字段。
例如:function saveToAll(field, data) {
db.get('document_list', function (err, doc) {
for (key in doc.doc_list_pure) {
//Create a Closure
(function(key1) {
console.log(key1)
//Go into the DB
console.log(field);
console.log(data);
db.merge(key1, {
field : data
}, function (err, res) {
console.log('Saved');
});
}
)(key)
}
});
}
那么这里,如果我这样写一个函数:
saveToAll("new_field", value);
它将正确记录日志,但保存一个字面上称为'field'的字段,其中包含正确的数据。有人知道该怎么做吗?这是摇篮虫还是我一个人?
试试这个:
function saveToAll(field, data) {
db.get('document_list', function (err, doc) {
for (key in doc.doc_list_pure) {
//Create a Closure
(function(key1) {
console.log(key1)
//Go into the DB
console.log(field);
console.log(data);
var dataObj = {};
dataObj[field]=data;
db.merge(key1, dataObj, function (err, res) {
console.log('Saved');
});
}
)(key)
}
});
}