繁体   English   中英

更新/删除猫鼬对象属性

[英]Updating/deleting mongoose object property

我有猫鼬架构与字段:

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

其中usedAt是一个具有projectId作为和用户角色作为value的对象 看起来像这样:

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

这种方法使我们能够轻松地通过projectId访问用户的角色,并确保用户在项目中具有唯一的角色。

如果用户在该项目中没有角色,则可以完美工作,但是一旦我需要更新/删除用户的角色问题,便会立即开始。 即我无法更新usedIn [projectId]的属性,但是我确定我提供了要保存的有效对象,保存过程中没有错误,但属性未更新。 与删除相同。 我无法删除财产。 我正在使用

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

我在写此问题时找到了答案:)要更新/删除“对象”中的属性,我必须使用这种方式:

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

现在,它可以很好地与创建/更新/删除属性一起使用。 如果有人可以解释为什么这种方式有效-欢迎您:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM