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!