我有这样的集合(称为project
):
{
"_id" : id,
name: '',
title: '',
"user": [
{
"username" : "manager",
"role" : [
"manager"
],
"group" : "group",
"Assign" : [
"education"
]
},
],
"category" : [
"education"
]
}
我正在尝试更新集合以替换“Assign”数组项:
Project.update({
_id: id,
'user.Assign': cat
}, {
$set: {
'user.$.Assign.$': new Cat
}
}, {
multi: true
})
我得到了
但是如果没有包含数组的相应查询字段
,则无法应用位置运算符
错误。在MongoDB中执行此操作的正确方法是什么?
答案 0 :(得分:2)
看起来你不需要最后一个位置操作员。您可能希望在该简单数组上使用$ push之类的东西。尝试将更新语句中的$set
更改为以下内容:
$push: {
'user.$.Assign' : "new Cat"
}
当然,如果合适,您可以在此处使用其他数组运算符,例如$addToSet
等。