2015-11-07 152 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); 

現在它的偉大工程創建/更新/刪除屬性。如果有人能解釋爲什麼這種方式有效 - 歡迎您:)