如何更新嵌套的用户集合

时间:2015-09-22 14:35:40

标签: javascript mongodb meteor

我一直试图解决这个问题已经有一段时间了,觉得我已经尝试了所有的东西。

我在名为details的用户下有一个嵌套集合。我从客户端更新详细信息字段没有问题,但我显然希望通过服务器运行更新以确保安全性。

这是我的服务器代码:

//server code
Meteor.methods({
  updateProfile : function() {
    Meteor.users.update({ _id: Meteor.userId() }, { $set: { "details.phoneNumber" : phoneNumber }
    });
  }
});

我的客户代码:

Template.userEdit.events({
  'submit updateProfile' : function(e, t){
    e.preventDefault();
    var firstName = e.target.phoneNumber;
    Meteor.call('phoneNumber');
  }
 });

目前我正在发布/订阅整个用户集合:

// Server
Meteor.publish("allUserData", function () {
  return Meteor.users.find();
});

// Client
Tracker.autorun(function () {
  Meteor.subscribe("allUserData");
});

1 个答案:

答案 0 :(得分:2)

您的服务器方法称为“updateProfile”,但您在客户端上调用“phoneNumber”。在您的情况下,如下调用Meteor方法:

<%= @symptoms_illness.illness.name %>
<%= @symptoms_illness.symptom.name %>

您的服务器方法必须接受一个参数作为输入:

Meteor.call("updateProfile", phoneNumber);