2015-11-07 6 views
0

У меня есть мангуста схема с полями:Обновления/удаление объекта недвижимости мангуста

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

Где usedAt объект с ProjectID как ключ и роли пользователя в качестве значения. Похоже, что:

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

Такой подход позволяет мне с нами легко получить доступ к роли пользователя по ProjectID и убедитесь, что пользователь имеет уникальную роль в проекте.

Если у пользователя нет роли в этом проекте, он отлично работает, но как только мне нужно обновить/удалить проблемы с ролью пользователя. То есть Я не могу обновить свойство usedIn [projectId], но я уверен, что я даю действительный объект для сохранения, у меня не было ошибок во время сохранения, но свойство не было обновлено. То же самое с удалением. Я не могу удалить свойство. Im используя

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

ответ

0

я нашел ответ, пока писал этот вопрос :) Чтобы обновить/удалить свойства в «Object» Я должен был использовать этот путь:

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

Теперь его отлично работает с создание/обновление/удаление свойств. Если кто-то может объяснить, почему этот способ сработал - приветствуется :)

Смежные вопросы