MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Design de banco de dados relacional para design mongoDB/mongoose


O Mongoose foi projetado de tal forma que você pode modelar suas tabelas relacionalmente com relativa facilidade e preencher dados relacionais com base no ref você definiu no esquema. A pegadinha é que você precisa ter cuidado com o preenchimento. Se você preencher demais ou aninhar suas populações, você terá gargalos de desempenho.

Sua abordagem em Edit 1 está em grande parte correto, no entanto, você geralmente não deseja preencher um ref remoto com base em um Number ou defina o _id de um modelo para um Number já que o mongo usa seu próprio mecanismo de hash para gerenciar o _id , normalmente seria um ObjectId com _id implícita. Exemplo como mostrado abaixo:
var ScoreSchema = new mongoose.Schema({
    user : { type: Schema.Types.ObjectId, ref: 'User' },
    game : { type: Schema.Types.ObjectId, ref: 'Game' },
    score: Number
});

Se por algum motivo você precisar manter um id de número para seus registros, considere chamá-lo de uid ou algo que não entre em conflito com os internos do mongo / mangusto. Boa sorte!