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

Sådan indlejres det samme skema i mongoose js

Advarslen viser dig allerede "Du kan kun indlejre ved at bruge refs eller arrays.". Dette er et mongoose-design.

Men hvad du kan gøre er:

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

Dette vil bruge et skema inde i et skema, så kan du bruge en "pre save" til at opdatere dine forældres data. Eller du kan bruge en række refs og beholde med kun 1 element.

Hvad du skal gøre er at eksportere skemaerne og ikke modellerne, så du kan indlejre det.sådan:

module.exports = MySchema;

Så har jeg en appModel til at indstille modellerne for min samling af skemaer, som denne (app_model.js):

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



  1. Projektarrangement af objekter til nøgleværdi

  2. Inden $unwind skal du kontrollere, om underdokumentet ikke er tomt

  3. Indsæt kun dokumenter i MongoDB, hvis alle felter er unikke

  4. Sådan bruger du mongoimport til at importere csv