I used to use MySQL and now new to Mongodb. In phase of learning, I am trying to create a User Profile like LinkedIn. I am confused to choose the proper way of creating one-to-many relationship in mongodb schemas.
Context: A user can have multiple education qualification and same with experience. Here are two ways, that i tried to create the schema as:
Example 1:
var userSchema = new mongoose.Schema({
  name: {
    first: String,
    middle: String,
    last: String,
  },
  gender: { type: Number, max: 3, min: 0, default: GENDERS.Unspecified },
  age: Number,
  education: [{type: Schema.Types.ObjectId, ref:'Education'}],
  experience: [{type: Schema.Types.ObjectId, ref:'Experience'}],
  email: String
});
Example 2:
var userSchema = new mongoose.Schema({
  name: {
    first: String,
    middle: String,
    last: String,
  },
  gender: { type: Number, max: 3, min: 0, default: GENDERS.Unspecified },
  age: Number,
  education: [{type: String, detail: {
    major: String,
    degree: String,
    grade: String,
    startdate: Date,
    enddate: Date,
    remarks: String
  }}],
  experience: [{type: String, detail: {
    position: String,
    company: String,
    dateofjoin: String,
    dateofretire: String,
    location: String,
    responsibilities: [{type:String}],
    description: String,
  }}],
  email: String
});
I haven't tested the second option.
Which one is better and easier during writing querying to fetch or add data? Is there a better way to write schema for scenarios like that?
 
     
    