Update subarray of strings

I'm trying to update item in subarray of document. Type of subarray is array of strings:

Dictionary.findOne({ name: req.query.name }, function(err1, data){
        if(err1){
            logger.error(err1);
            res.send({ err: 'Db error' });
        } else {
            var index = data.values.indexOf(req.query.value);
            if(index == -1)
                res.send({ err: 'Value not found' });
            else {
                data.values[index] = req.query.newValue;
                data.save(function(err2){
                    if(err2){
                        logger.error(err);
                        res.send({ err: 'Db error' });
                    } else
                        res.send({ data: data, info: 'Dictionary updated successfully' });
                });
            }
        }
    });

returned data is updated correctly, but record is not updated in database. Help please

You need to mark the change before saving it

data.markModified 'values'
data.save (...)

http://mongoosejs.com/docs/api.html#types_embedded_EmbeddedDocument-markModified

from mongodb shell you can write

db.test.update({values:"English"},{$set:{'values.1':"updated value"}})