1

ドキュメントの部分配列の項目を更新しようとしています。サブ配列の型は文字列の配列です:

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れたものは正しく更新されますが、レコードはデータベースで更新されません。助けてください

4

2 に答える 2

1

保存する前に変更をマークする必要があります

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

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

于 2013-07-21T12:51:35.067 に答える
1

mongodbシェルから書くことができます

db.test.update({values:"English"},{$set:{'values.1':"updated value"}})
于 2013-07-21T13:16:39.107 に答える