sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man kapslar samma schema i mongoose js

Varningen visar redan "Du kan bara kapsla med hjälp av refs eller arrayer.". Detta är en mongoosedesign.

Men det du kan göra är att:

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

Detta kommer att använda ett schema inuti ett schema, sedan kan du använda en "pre save" för att uppdatera din förälders data. Eller så kan du använda en uppsättning refs och behålla med bara ett element.

Vad du behöver göra är att exportera scheman och inte modellerna, så att du kan kapsla det.så här:

module.exports = MySchema;

Sedan har jag en appModel för att ställa in modellerna för min samling av scheman, så här (app_model.js):

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



  1. Vad är det bästa sättet att lagra födelsedatum i MongoDB?

  2. Hur skulle jag kunna skriva ett BsonDocument-objekt i en fil och läsa det igen med Java

  3. Undantag använder mongodb som infinispan-cachebutik

  4. Hur kan jag automatiskt mappa JSON till en fallklass när ett fält är ett scala nyckelord?