オブジェクトフィールド名の文字列リテラルの構文は、ここであなたを悩ませています。それを回避するには、中間オブジェクトを作成し、リテラルを使用せずに構築します。
var this_key = 'test';
var push = {};
push[this_key] = 'value'; // here, it will use the variable
mongoose.model('members', Schema).update(
{ id: '0' }, {$push: push} , [], function (err, data){});