如何将变量中的字符串设置为mongodb中现有对象中的键

时间:2015-09-03 13:00:08

标签: json mongodb

我知道这是有效的:

db.users.update({_id: "1234"}, {$set: {"conversations.partId": id}});

结果我得到了:conversations:{"partId":2345}

但我想将partId设置为变量。并有这样的结构: conversations:{"3456":"2345"}

我试过了:

db.users.update({_id: "someid"}, {$set: {"conversations".partId: id}});
or
db.users.update({_id: "someid"}, {$set: {"conversations"+partId: id}});

但这当然不起作用

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

尝试通过 bracket notation 创建您需要更新的文档,即

var obj = {};
obj[partId] = id;

然后,您可以将其用作新的嵌入式文档,使用 $set 运算符表达式添加到会话字段中,如下所示:

db.users.update(
    {_id: "someid"}, 
    {
        $set: {
            "conversations": obj
        }
    }
);