我知道这是有效的:
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}});
但这当然不起作用
任何人都可以帮助我吗?
答案 0 :(得分:1)
尝试通过 bracket notation 创建您需要更新的文档,即
var obj = {};
obj[partId] = id;
然后,您可以将其用作新的嵌入式文档,使用 $set
运算符表达式添加到会话字段中,如下所示:
db.users.update(
{_id: "someid"},
{
$set: {
"conversations": obj
}
}
);