簡體   English   中英

更新字符串的子數組

[英]Update subarray 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' });
                });
            }
        }
    });

返回的data已正確更新,但記錄未在數據庫中更新。 請幫助

您需要在保存之前標記更改

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

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

從mongodb shell你可以寫

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM