La advertencia ya le muestra "Solo puede anidar usando referencias o matrices". Este es un diseño de mangosta.
Pero lo que puedes hacer es:
var MySchema = new mongoose.Schema({
objectId: String,
parent: {
type: mongoose.Schema.ObjectId,
ref: 'MySchema'
},
})
Esto usará un esquema dentro de un esquema, luego puede usar un "guardado previo" para actualizar los datos de su padre. O puede usar una matriz de referencias y quedarse con solo 1 elemento.
Lo que hay que hacer es exportar los esquemas y no los modelos, para que puedas anidarlos. Así:
module.exports = MySchema;
Luego tengo un modelo de aplicación para configurar los modelos de mi colección de esquemas, así (app_model.js):
if(mongoose.modelNames().indexOf('mySchema') < 0) mongoose.model('mySchema', mySchema);