2016-04-28 8 views
0

würde Ich mag einige Dummy-Konten erstellen, wenn ich zum ersten Mal auf einen Computer meinen Meteor Anwendung laden. Dies ist für Entwicklungszwecke. Ich habe das funktioniert, aber ich kann nicht herausfinden, wie Sie Daten zum Unterschema hinzufügen.ein komplettes Benutzerprofiles beim ersten Start

DB

"profile": { 
    "firstName": "first", 
    "familyName": "last", 
    "phone": "041111111", 
    "address": { 
     "street": "22 Test St", 
     "suburb": "Melbourne", 
    } 
    } 

Version arbeiten, fehlt Informationen

// user creation 
    _.each(users, function(userData) { 
     // return id for use in roles assignment below 
     var userId = Accounts.createUser({ 
     email: userData.email, 
     password: 'password', 
     profile: { 
      firstName: userData.firstName, 
      familyName: userData.familyName, 
      phone: '041111111', 
     }, 
     }); 

Problem - Ich möchte in die Benutzer

// user creation 
    _.each(users, function(userData) { 
     // return id for use in roles assignment below 
     var userId = Accounts.createUser({ 
     email: userData.email, 
     password: 'Zaq12wsx', 
     profile: { 
      firstName: userData.firstName, 
      familyName: userData.familyName, 
      phone: '0416089930', 
      address: { 
      street: '22 Test St', 
      suburb: 'Melbourne' 
      } 
     }, 
     }); 
0-Adresse hinzufügen

SimpleSchema

Schema.UserProfile = new SimpleSchema({ 
    firstName: { 
     type: String, 
     optional: false, 
    }, 
    familyName: { 
     type: String, 
     optional: false, 
    }, 
    address: { 
     type: Schema.Address, 
     optional: true 
    } 
}); 

Schema.Address = new SimpleSchema({ 
    street: { 
     type: String, 
     optional: false, 
    }, 
    suburb: { 
     type: String, 
     optional: false, 
    }, 
}); 
+0

Did Sie definieren ein beliebiges Schema für den Benutzer. mit einfacher Sammlung oder Sammlung 2? –

+0

Ja, ich bin mit collection2 – bp123

+0

Können Sie mir bitte zeigen, dass auch. –

Antwort

0

Wie pro Ihren Kommentar, haben Sie für die Benutzer ein falsches Schema entwerfen. So können Sie das Schema für die Benutzer entwerfen.

Schema für Benutzer

Schema.User = new SimpleSchema({ 
    username: { 
     type: String, 
     optional: true 
    }, 
    emails: { 
     type: Array, 
     optional: true 
    }, 
    "emails.$": { 
     type: Object 
    }, 
    "emails.$.address": { 
     type: String, 
     regEx: SimpleSchema.RegEx.Email 
    }, 
    "emails.$.verified": { 
     type: Boolean 
    } 
    profile: { 
     type: Schema.UserProfile, 
     optional: true 
    }, 
    services: { 
     type: Object, 
     optional: true, 
     blackbox: true 
    }, 
}); 

Schema für Benutzerprofil

Schema.UserProfile = new SimpleSchema({ 
    firstName: { 
     type: String, 
     optional: false, 
    }, 
    familyName: { 
     type: String, 
     optional: false, 
    }, 
    address: { 
     type: Schema.Address, 
     optional: true 
    } 
}); 

Schema für Adressbenutzerprofil.

Schema.Address = new SimpleSchema({ 
    street: { 
     type: String, 
     optional: false, 
    }, 
    suburb: { 
     type: String, 
     optional: false, 
    }, 
}); 

Dann können Sie das Benutzerschema auf Ihre meteor.users wie diese

Meteor.users.attachSchema(Schema.User);

Sie auch alle das Schema in einzelnen Objekt hinzufügen definieren kann wie folgt

Schema.User = new SimpleSchema({ 
    username: { 
     type: String, 
     optional: true 
    }, 
    emails: { 
     type: Array, 
     optional: true 
    }, 
    "emails.$": { 
     type: Object 
    }, 
    "emails.$.address": { 
     type: String, 
     regEx: SimpleSchema.RegEx.Email 
    }, 
    "emails.$.verified": { 
     type: Boolean 
    } 
    profile: { 
     type: Object, 
     optional: true 
    }, 
    'profile.firstName': { 
     type: String, 
     optional: false, 
    }, 
    'profile.familyName': { 
     type: String, 
     optional: false, 
    }, 
    'profile.address': { 
     type: Object, 
     optional: true 
    }, 
    'profile.address.street': { 
     type: String, 
     optional: false, 
    }, 
    'profile.address.suburb': { 
     type: String, 
     optional: false, 
    }, 
    services: { 
     type: Object, 
     optional: true, 
     blackbox: true 
    }, 
}); 
+0

Ich bin nicht sicher, ich Ihren Vorschlag folgen 'Meteor.users.attachSchema (Schema.User);' können Sie mir zeigen, wie ich dies würde zum Hinzufügen in die Straße und der Vorort? – bp123

Verwandte Themen