Search code examples
meteormeteor-accounts

How to add extra attributes to users collection?


I am using Accounts.createUser to add new users to the database, but the problem is that, not all the attributes are added.

Here is my code to add new user:

import {Accounts} from 'meteor/accounts-base';

Template.addingUser.events({
    'submit #addUser': function (e, t) {

        e.preventDefault();

        Session.set('name', t.find('#name').value);
        Session.set('email', t.find('#email').value);
        Session.set('telephoneOffice', t.find('#telephoneOffice').value);
        Session.set('telephoneHouse', t.find('#telephoneHouse').value);
        Session.set('salary', t.find('#salary').value);

        let userId = Accounts.createUser({
            username: Session.get('name'),
            password: "123456",
            email: Session.get('email'),
            telephoneOffice: Session.get('telephoneOffice'),
            telephoneHouse: Session.get('telephoneHouse'),
            employeeSalary: Session.get('salary'),
            annualLeave: 14

        }, function (err) {
            if (err)
                console.log(err);
            else
                console.log('It worked...');
        });

        Accounts.sendEnrollmentEmail(userId);


    }
});

only the name, email, and password are added.

How do I include the other information as well such as telephoneOffice?


Solution

  • You need to pass the extra data inside the profile object.

    Accounts.createUser({
      username: Session.get('name'),
      password: "123456",
      email: Session.get('email'),
      profile: {
        telephoneOffice: Session.get('telephoneOffice'),
        telephoneHouse: Session.get('telephoneHouse'),
        employeeSalary: Session.get('salary'),
        annualLeave: 14
      }
      ...