MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como aninhar o mesmo esquema no mangusto js


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);