【问题标题】:Updating user profile details in meteor not working在流星中更新用户个人资料详细信息不起作用
【发布时间】:2014-04-14 15:29:45
【问题描述】:

如何在我的流星应用程序中编辑用户集合中的用户详细信息。我的代码是

 Meteor.users.update({_id:this._id}, { $set:{"profile.name":pname}} )

这仅适用于列表中的第一个用户。如何为列出的所有用户执行此操作?

【问题讨论】:

  • 当你这样写时,列表中应该只有一个用户 - _id 对于不同的对象应该是不同的。
  • 您的“this._id”可能不是您想的那样。检查您的 UI 是否正在适当地更改“this”。

标签: meteor


【解决方案1】:

根据http://docs.meteor.com/#update,将“multi”选项设置为“true”:

Meteor.users.update({_id:this._id}, { $set:{"profile.name":pname}}, {multi: true} )

【讨论】:

  • 虽然语法正确,但 users 集合不能包含多个共享相同 _id 的用户文档。如果是这样,那么还有一些更严重的问题需要注意。
【解决方案2】:

我发现更新 Meteor 用户的唯一方法是使用带有 Meteor.userId() 的 _id 设置条件:

Meteor.users.update( { _id: Meteor.userId() }, { $set: { 'oauth.token': token }} );

我在服务器端执行此操作,因此它将阻止客户端,直到 Mongo 成功/失败。

【讨论】:

    【解决方案3】:

    问题是你引用了不存在的东西

    替换:

    Meteor.users.update({_id:this._id}, { $set:{"profile.name":pname}} )

    作者: Meteor.users.update({_id:this.userId}, { $set:{"profile.name":pname}} )

    或者像 @occasl 之前建议的那样使用 Meteor.userId()。

    刚刚发生在我身上

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 2011-01-13
      • 2018-10-16
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      相关资源
      最近更新 更多