我正在尝试更新文档子阵列中的项目。子数组的类型是字符串数组:
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' });
});
}
}
});
返回data
已正确更新,但记录未在数据库中更新。请帮忙
答案 0 :(得分:1)
您需要在保存之前标记更改
data.markModified 'values'
data.save (...)
http://mongoosejs.com/docs/api.html#types_embedded_EmbeddedDocument-markModified
答案 1 :(得分:1)
你可以写
db.test.update({values:"English"},{$set:{'values.1':"updated value"}})