如何使用javascript变量引用Mongo DB集合的字段

如何使用javascript变量引用Mongo DB集合的字段,javascript,mongodb,mongo-shell,Javascript,Mongodb,Mongo Shell,我想将字段值类型从字符串更改为对象 ...{value: "my title"}... ===> ...{value:{value:"my title ABC"}} 在Mongo shell中,我通过JavaScript var articlePath呈现此字段。现在,我如何使用这个变量来更新字段值 下面的代码是创建一个新字段articlePath,而不是使用var的值 var articlePath = "layout.content.header." + i + "." + j +

我想将字段值类型从字符串更改为对象

...{value: "my title"}... ===> ...{value:{value:"my title ABC"}}
在Mongo shell中,我通过JavaScript var articlePath呈现此字段。现在,我如何使用这个变量来更新字段值

下面的代码是创建一个新字段articlePath,而不是使用var的值

var articlePath = "layout.content.header." + i + "." + j + ".value"
var articleValue = block.value + " ABC"
db.mycollection.update(
    {_id: catId},
    {
        $set: {
            articlePath: {value: articleValue}
        }
    },
    function(err, numberUpdated) {
        print("--->err: ", err)
    }
)

尝试以下代码段

var articlePath = {};
var keyName = "layout.content.header." + i + "." + j + ".value";
var articleValue = block.value + " ABC";
articlePath[keyName] = articleValue;

db.mycollection.update(
    {_id: catId},
    {
        $set: articlePath
    },
    function(err, numberUpdated) {
        print("--->err: ", err)
    }
)

谢谢,您不能使用文字符号通过变量的值来设置键的名称。试着这样做:

var update = { "$set" : { } }
update["$set"][articlePath] = { "value" : articleValue }
db.mycollection.update({ "_id" : catId }, update, *callback*)