Du kan inte bädda in scheman på det här sättet, med resonemanget att de underordnade dokumenten skulle förväxlas med fullständiga dokument, se denna feltråd, där det står:
anledningen till att vi inte har lagt till det här stödet tidigare är b/c. Detta gör att vi undrar om alla pre-hooks kommer att exekveras på samma sätt för pseudo-under-dokumentet, liksom det antyder att vi kan anropa save() på det barnet.
Svaret här är att dela inte schemat, utan bara definitionen.
var userdef = { name: String };
var UserSchema = new Schema(userdef);
var BlogPostSchema = new Schema({author: userdef});
Detta skulle resultera i ett kapslat användarobjekt utan att faktiskt kapsla schemat.