我希望在当前文档中添加一个新字段(将来使用$ 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"]}});
答案 0 :(得分:5)
这是因为您不应该更改用户对象的根字段。来自the docs:
默认情况下,当前用户的
发布其他字段username
,emails
和profile
会发布到客户端。您可以使用[...]
所以你可以
Meteor.users.update(user, {$set: {"profile.newfield": ["some data"]}});
请注意,您应该limit store in profile
。
答案 1 :(得分:1)
您需要将“newfield”定义为数组,否则操作将失败。见这里:http://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push