sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo anidar el mismo esquema en mongoose js

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