MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So verschachteln Sie dasselbe Schema in Mongoose js

Die Warnung zeigt Ihnen bereits "Sie können nur mit Refs oder Arrays verschachteln.". Dies ist ein Mungo-Design.

Aber was Sie tun können, ist:

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

Dies wird ein Schema innerhalb eines Schemas verwenden, dann können Sie ein "Pre-Save" verwenden, um die Daten Ihrer Eltern zu aktualisieren. Oder Sie können ein Array von Refs verwenden und mit nur 1 Element beibehalten.

Exportieren Sie die Schemas und nicht die Modelle, damit Sie sie verschachteln können. So:

module.exports = MySchema;

Dann habe ich ein appModel, um die Modelle meiner Sammlung von Schemas festzulegen, wie hier (app_model.js):

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