Использование переменных в Cradle Merge (Node.js и CouchDB)
Я пытаюсь написать функцию, которая зацикливает и изменяет поле в нескольких документах одновременно. Единственная проблема заключается в том, что, когда я передаю значение параметра, слияние в колыбели фактически передает поле с именем параметра вместо значения.
Например:
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);
Он будет регистрироваться правильно, но сохранит поле, буквально называемое "полем" с правильными данными. У кого-нибудь есть идеи, как к этому подойти? Это ошибка в колыбели или только я?
1 ответ
Решение
Попробуй это:
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)
}
});
}