Mongoose est conçu de telle manière que vous pouvez modéliser vos tables de manière relationnelle avec une relative facilité et remplir des données relationnelles basées sur le ref
vous avez défini dans le schéma. Le piège est que vous devez être prudent avec le remplissage. Si vous peuplez trop ou imbriquez vos populations, vous rencontrerez des goulots d'étranglement en matière de performances.
Votre approche dans Edit 1
est en grande partie correct, mais vous ne souhaitez généralement pas remplir un ref
distant basé sur un Number
ou définissez le _id
d'un modèle à un Number
puisque mongo utilise son propre mécanisme de hachage pour gérer le _id
, il s'agirait généralement d'un ObjectId
avec _id
implicite. Exemple comme indiqué ci-dessous :
var ScoreSchema = new mongoose.Schema({
user : { type: Schema.Types.ObjectId, ref: 'User' },
game : { type: Schema.Types.ObjectId, ref: 'Game' },
score: Number
});
Si, pour une raison quelconque, vous devez conserver un numéro d'identification pour vos enregistrements, pensez à l'appeler uid
ou quelque chose qui n'entrera pas en conflit avec les internes mongo / mongoose. Bonne chance !