Składnia literałów łańcuchowych w nazwach pól obiektów jest tutaj gryząca. Aby to obejść, stwórz obiekt pośredni i skonstruuj go bez używania literałów:
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){});