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!