我有mongoose Schema字段:
var UserSchema = new mongoose.Schema({
password:{
type:String,
required:true
},
name:{
type:String,
maxlength: 60,
required:true
},
usedIn:Object
})
其中usedAt是一个对象,其projectId为 key ,用户角色为 value 。它看起来像是:
usedIn:{'563d2733135ad2542dc5bdb6':'manager','563d2733135ad2542dc5bdb7':'worker'}
这种方法让我们可以通过projectId轻松访问用户的角色,并确保用户在项目中具有独特的角色。
如果用户在此项目中没有任何角色,那么它的工作非常完美,但只要我需要更新/删除用户的角色问题就行了。即我无法更新usedIn [projectId]的属性,但我确定我要保存有效对象,保存时没有错误,但属性没有更新。与删除相同。我无法删除财产。 我正在使用
if(role!='none')
user.usedIn[projectId] = role;
else
user.usedIn[projectId] = undefined;
答案 0 :(得分:0)
我在写这个问题时找到了答案:) 要在'对象'更新/删除属性我不得不用这种方式:
if(role!='none')
user.set('usedIn.'+projectId,role);
else
user.set('usedIn.'+projectId,undefined);
现在它可以很好地创建/更新/删除属性。如果有人能解释为什么这种方式有效 - 欢迎你:)