Mongoose is zo ontworpen dat u uw tabellen relatief gemakkelijk relationeel kunt modelleren en relationele gegevens kunt vullen op basis van de ref
die u in het schema hebt gedefinieerd. De gotcha is dat je voorzichtig moet zijn met bevolken. Als je te veel bevolkt of je populaties nest, loop je tegen prestatieknelpunten aan.
Uw aanpak in Edit 1
is grotendeels correct, maar u wilt meestal geen externe ref
. invullen gebaseerd op een Number
of stel de _id
. in van een model naar een Number
aangezien mongo zijn eigen hashing-mechanisme gebruikt voor het beheren van de _id
, is dit meestal een ObjectId
met _id
geïmpliceerd. Voorbeeld zoals hieronder weergegeven:
var ScoreSchema = new mongoose.Schema({
user : { type: Schema.Types.ObjectId, ref: 'User' },
game : { type: Schema.Types.ObjectId, ref: 'Game' },
score: Number
});
Als je om wat voor reden dan ook een nummer-ID voor je administratie moet behouden, overweeg dan om het uid
te noemen of iets dat niet in strijd is met mongo / mangoest internals. Veel succes!