我有像mongodb这样的集合
{
"_id" : ObjectId("5396d07eccbc961622e55309"),
"userName" : "mulagala",
"groups" : [
{
"groupName" : "Default",
"groupMembers" : [ ]
},
{
"groupName" : "Family",
"groupMembers" : [ ]
}
],
}
我想将groupName Family
更改为Friends
。我尝试过如下
db.groups.update({ "userName" : 'mulagala' },{ "$rename": {"groups": {"groupName.Family" : 'groupName.Friends'}}})
我收到此错误
$rename target must be a string
答案 0 :(得分:1)
这不是字段名称,而是"值"一个领域。您可以使用positional $
运算符和$set
db.groups.update(
{ "userName": "mulagala", "groups.groupName": "Family" },
{
"$set": { "groups.$.groupName": "Friends" }
}
)
因此,您匹配数组所需的元素,并在$set
下的更新部分中指定"位置"与$
。那么你只需要设置"你想要的价值。