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

Progettazione di database relazionali con progettazione mongoDB/mongoose

Mongoose è progettato in modo tale da poter modellare le tue tabelle in modo relazionale con relativa facilità e popolare i dati relazionali in base al ref hai definito nello schema. Il trucco è che devi stare attento con il popolamento. Se popolate troppo o nidificate le vostre popolazioni, vi imbatterete in colli di bottiglia delle prestazioni.

Il tuo approccio in Edit 1 è in gran parte corretto, tuttavia di solito non vuoi popolare un ref remoto basato su un Number oppure imposta il _id di un modello a un Number poiché mongo utilizza il proprio meccanismo di hashing per la gestione di _id , di solito si tratta di un ObjectId con _id implicito. Esempio come mostrato di seguito:

var ScoreSchema = new mongoose.Schema({
    user : { type: Schema.Types.ObjectId, ref: 'User' },
    game : { type: Schema.Types.ObjectId, ref: 'Game' },
    score: Number
});

Se per qualche motivo hai bisogno di mantenere un numero ID per i tuoi archivi, considera di chiamarlo uid o qualcosa che non sia in conflitto con gli interni di mongo/mangusta. Buona fortuna!