在摇篮合并(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);

它将正确记录日志,但保存一个字面上称为'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)
      }
});
}

最新更新