MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment imbriquer le même schéma dans mongoose js

L'avertissement vous indique déjà "Vous ne pouvez imbriquer qu'en utilisant des références ou des tableaux.". Ceci est une conception de mangouste.

Mais ce que vous pouvez faire, c'est :

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

Cela utilisera un schéma à l'intérieur d'un schéma, puis vous pourrez utiliser une "pré-sauvegarde" pour mettre à jour les données de votre parent. Ou vous pouvez utiliser un tableau de références et conserver un seul élément.

Ce qu'il faut faire, c'est exporter les schémas et non les modèles, afin que vous puissiez les imbriquer.comme ceci :

module.exports = MySchema;

Ensuite, j'ai un appModel pour définir les modèles de ma collection de schémas, comme ceci (app_model.js):

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