Meteor Mongo:Unset似乎不起作用

时间:2015-08-04 17:48:42

标签: mongodb meteor

流星蒙古的未设置似乎对我不起作用。我运行以下代码,没有任何反应。我试图从一个看起来像的对象中删除一个字段:(例如,kaldj12lasasd是一个组ID)。此外,如果它有助于我使用https://atmospherejs.com/alanning/roles来帮助管理角色和组。

当从Groups集合中删除组时,我从集合挂钩运行此代码。我想从每个用户中删除所有groupId字段,并将该groupId作为字段。

# User obj
user = {
  kaldj12lasasd: ['admin', 'read', 'write']
}

# Remove it from every users' role array
unsetObj = {};
unsetObj[group._id] = "";

Meteor.users.update({}, {$unset: unsetObj});

1 个答案:

答案 0 :(得分:1)

根据docs,角色在用户的roles子字段上定义 - 而不是直接在对象上定义。您似乎希望unsetObj看起来像{'roles.kaldj12lasasd: ''}。此外,您似乎缺少{multi: true},以便更新影响多个文档。试试这个:

var unsetObj = {};
unsetObj['roles.' + group._id] = '';
Meteor.users.update({}, {$unset: unsetObj}, {multi: true});