Nie możesz osadzić schematów w ten sposób, z uzasadnieniem, że te dokumenty podrzędne byłyby mylone z pełnymi dokumentami, zobacz ten wątek błędów, gdzie jest napisane:
powodem, dla którego nie dodaliśmy tej obsługi w przeszłości, jest b/c, co pozwala nam się zastanawiać, czy wszystkie pre-hooks zostaną wykonane w ten sam sposób dla dokumentu pseudo-dziecka, a także sugeruje, że możemy wywołać save() na to dziecko.
Odpowiedzią jest udostępnianie nie schematu, ale tylko definicji.
var userdef = { name: String };
var UserSchema = new Schema(userdef);
var BlogPostSchema = new Schema({author: userdef});
Spowodowałoby to zagnieżdżenie obiektu użytkownika, bez faktycznego zagnieżdżania schematu.