MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come annidare lo stesso schema in mongoose js

L'avviso mostra già "Puoi nidificare solo usando riferimenti o array". Questo è un disegno a mangusta.

Ma quello che puoi fare è:

var MySchema = new mongoose.Schema({
    objectId: String,
    parent: {
        type: mongoose.Schema.ObjectId,
        ref: 'MySchema'
    },
})

Questo utilizzerà uno schema all'interno di uno schema, quindi puoi utilizzare un "pre-salvataggio" per aggiornare i dati del tuo genitore. Oppure puoi utilizzare una matrice di riferimenti e mantenerli con un solo elemento.

Quello che devi fare è esportare gli schemi e non i modelli, quindi puoi nidificarlo. in questo modo:

module.exports = MySchema;

Poi ho qualche appModel per impostare i modelli della mia raccolta di schemi, come questo (app_model.js):

if(mongoose.modelNames().indexOf('mySchema') < 0) mongoose.model('mySchema', mySchema);