Non puoi incorporare schemi in questo modo, con il ragionamento che quei documenti figlio sarebbero confusi con documenti completi, vedi questo thread di bug, dove è affermato:
il motivo per cui non abbiamo aggiunto questo supporto in passato è b/c questo ci fa chiedere se tutti i pre-hook verranno eseguiti allo stesso modo per il documento pseudo-figlio e implica che possiamo chiamare save() su quel bambino.
La risposta qui è condividere non lo schema, ma solo la definizione.
var userdef = { name: String };
var UserSchema = new Schema(userdef);
var BlogPostSchema = new Schema({author: userdef});
Ciò risulterebbe in un oggetto utente nidificato, senza effettivamente nidificare lo schema.