複数のドキュメントのフィールドを同時にループして変更する関数を作成しようとしています。唯一の問題は、パラメーター値を渡すときに、クレードルマージが、値ではなくパラメーター名を持つフィールドを実際に渡すように見えることです。
例えば:
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」と呼ばれるフィールドを正しいデータで保存します。誰かがこれにアプローチする方法のアイデアを持っていますか?これはゆりかごのバグですか、それとも私だけですか?