2015-11-07 156 views
0

我有一个领域猫鼬架构:更新/删除猫鼬对象属性

var UserSchema = new mongoose.Schema({ 
    password:{ 
     type:String, 
     required:true 
    }, 
    name:{ 
     type:String, 
     maxlength: 60, 
     required:true 
    }, 
    usedIn:Object 
}) 

哪里usedAt是专案编号对象为关键和用户角色。它看起来像:

usedIn:{'563d2733135ad2542dc5bdb6':'manager','563d2733135ad2542dc5bdb7':'worker'} 

这种方法可以让我我们轻松通过专案编号访问用户的角色,并确保用户在项目中的独特作用。

如果用户在这个项目中没有任何作用,它的工作是完美的,但只要我需要更新/删除用户的角色问题开始。即我无法更新usedIn [projectId]的属性,但是我确定我给了有效的对象来保存,在保存期间没有错误,但属性没有更新。与删除相同。我无法删除属性。 即时通讯使用

if(role!='none') 
     user.usedIn[projectId] = role; 
    else 
     user.usedIn[projectId] = undefined; 

回答

0

我找到了答案,而在写这个问题:) 更新/删除在“对象”的属性,我不得不用这样的方式:

if(role!='none') 
     user.set('usedIn.'+projectId,role); 
    else 
     user.set('usedIn.'+projectId,undefined); 

现在它的伟大工程创建/更新/删除属性。如果有人能解释为什么这种方式有效 - 欢迎您:)