向集合中的当前文档添加新字段时,Meteor.users.update访问被拒绝

Fra*_*ong 2 mongodb meteor mongodb-update meteor-accounts

我想在当前文档中添加一个新字段(将来会用$ push填充的数组)但是我收到了错误 update failed: MongoError: Cannot apply $push/$pushAll modifier to non-array

我正在研究Meteor.users集合.

代码运行是:

var user = Meteor.userId();
Meteor.users.update({_id:user}, {$set: {"newfield": ["some data"]}});
Run Code Online (Sandbox Code Playgroud)

Dan*_*scu 5

发生这种情况是因为您不应该更改用户对象的根字段.来自文档:

默认情况下,当前用户的username,emailsprofile发布到客户端.您可以使用[...]发布其他字段

所以你可以

Meteor.users.update(user, {$set: {"profile.newfield": ["some data"]}});
Run Code Online (Sandbox Code Playgroud)

但是请注意,你应该限制你什么的存储profile.