O aviso já mostra "Você só pode aninhar usando refs ou arrays.". Este é um design de mangusto.
Mas o que você pode fazer é:
var MySchema = new mongoose.Schema({
objectId: String,
parent: {
type: mongoose.Schema.ObjectId,
ref: 'MySchema'
},
})
Isso usará um esquema dentro de um esquema, então você pode usar um "pré-salvar" para atualizar os dados de seu pai. Ou você pode usar um array de refs e ficar com apenas 1 elemento.
O que fazer é exportar os esquemas e não os modelos, para que você possa aninhá-los.
module.exports = MySchema;
Então eu tenho algum appModel para definir os modelos da minha coleção de esquemas, assim (app_model.js):
if(mongoose.modelNames().indexOf('mySchema') < 0) mongoose.model('mySchema', mySchema);