{_where : what }
третира _where
като String
литерал, който е еквивалентен на:{"_where":what}
. Следователно не получавате актуализирани резултати, тъй като няма поле като _where
. Трябва да го присвоите по следния начин, за да работи.
exports.updateUsers = function ( user_id, where, what, pass ) {
var _where = 'settings.'+where; //when I use it doesn't update
var update = {};
update[_where] = what;
user.findOneAndUpdate(
{'user_id' : user_id},
update).exec(function(e,d){
pass("ok")
})
};
update[_where] = what;
разрешава стойността в _where
променлива.