我也尝试过使用新的$[identifier].syntax which see maked for the kind of use case but it failds…。
你有线索吗?或this SO question我们可以很容易地使用positional$操作符更新数组中的对象。
我试图做同样的事情,但我必须使用对象子属性。
示例:
// Data model:
UserSchema = new Schema({
permissionsPerOrganization: [{
organization: {
type: ObjectId,
ref: 'Organization'
},
role: {
type: ObjectId,
ref: 'Role'
}
}],
我必须更新角色permissionsPerOrganization有一个准确的身份证。
以下是我的资料:
this.activeSchema.findByIdAndUpdate(
{ _id: user._id, 'permissionsPerOrganization.organization._id': org._id },
{ 'permissionsPerOrganization.$.role': roleId },
{
new: true
})
我也试过新的[标识符]语法似乎适合这种用例,但它失败了…
你有线索吗?