title: What is the proper pattern for nested schemas in Mongoose/MongoDB?
body: <p>It seems logical to me to do something like the following:</p>
  
  <pre><code>var AvatarSchema = new Mongoose.Schema({
      type: String,
      url: String
  });
  
  var UserSchema = new Mongoose.Schema({
      avatars: [AvatarSchema],
      email: String,
      name: String,
      salt: String,
      token: String
  });
  
  var ThinUserSchema = new Mongoose.Schema({
      avatars: [AvatarSchema],
      email: String,
      firstname: String,
      lastname: String,
  });
  
  var QuestionSchema = new Mongoose.Schema({
      question: String,
      users: [ThinUserSchema]
  });
  </code></pre>
  
  <p>Then later on. . .do something like the following:</p>
  
  <pre><code>var question = new Question({
      question: 'Wut?',
      users: users //where users is an array of instances of a user model of the UserSchema
  });
  </code></pre>
  
  <p>Here I would expect the users section of the question to be populated with avatars, emails, firstnames and lastnames. . .however since the users/avatars already have _id, these are not persisted.</p>
  
  <ul>
  <li>Deleting each of the _id from the user/avatars seems silly.</li>
  <li>Explicitly setting up each user/avatar seems inefficient.</li>
  <li>Switching to a mixed type, puts EVERYTHING in there, and requires markModified.</li>
  </ul>
  
  <p>What is the proper pattern for these sorts of schemas?</p>
  
  <p>Thanks!</p>