Mongodb 为什么arr数组创建后不在users对象中?

Mongodb 为什么arr数组创建后不在users对象中?,mongodb,meteor,Mongodb,Meteor,我试图使arr成为每个用户都拥有但从未发送到客户端的数组。一天前,它在用户创建时停止放入用户对象。这是代码;谢谢 客户 Template.create_user.events({ 'click #create-user-button': function() { var username = $("#username").val(); var password = $("#password").val(); var email = $("#email").val();

我试图使arr成为每个用户都拥有但从未发送到客户端的数组。一天前,它在用户创建时停止放入用户对象。这是代码;谢谢

客户

Template.create_user.events({
 'click #create-user-button': function() {
    var username = $("#username").val();
    var password = $("#password").val();
    var email = $("#email").val();
    var bio = $("#bio").val() || "";
    if (!username || !password || !email) {
    } else {
      Accounts.createUser({
        username: username,
        password: password,
        email: email,
        arr:[],
        profile: {
            bio: bio
        }
      });

     }  
   }
 });
server/user.js

Accounts.onCreateUser(function(options, user) {
  if (options.profile)
    user.profile = options.profile;
  return user;
});
获取最多包含4个字段的对象:用户名、电子邮件、密码和配置文件。您正在传入
arr
,服务器将忽略此消息。您有两个选择:

  • arr
    放入
    profile
    对象内部
  • arr
    添加到
    Accounts.onCreateUser
    回调中的用户
  • 备选案文1:
    Accounts.createUser({
    用户名:用户名,
    密码:密码,
    电邮:电邮,,
    简介:{
    生物:生物,
    arr:[]
    }
    });
    
    备选案文2:
    Accounts.onCreateUser(函数(选项,用户){
    if(options.profile)
    user.profile=options.profile;
    user.arr=[];
    返回用户;
    });
    
    在这种情况下,您还需要发布额外的字段,以便客户端可以看到它。请参阅文档的一节。具体而言:

    //服务器
    Meteor.publish(“userData”,函数(){
    if(this.userId){
    返回Meteor.users.find({u-id:this.userId},{fields:{arr:1}});
    }否则{
    这个;
    }
    });
    //客户
    Meteor.subscribe(“用户数据”);
    
    这些API很长一段时间都没有改变,所以除了胡乱猜测之外,我没有什么可以提供的。:)