Mongoose jest zaprojektowany w taki sposób, że możesz relacyjnie modelować swoje tabele z względną łatwością i wypełniać relacyjne dane na podstawie ref
zdefiniowany w schemacie. Problem polega na tym, że musisz uważać na zaludnianie. Jeśli zaludnisz zbyt dużo lub zagnieździsz swoje populacje, natkniesz się na wąskie gardła wydajności.
Twoje podejście w Edit 1
jest w dużej mierze poprawne, jednak zwykle nie chcesz wypełniać zdalnego ref
na podstawie Number
lub ustaw _id
modelu na Number
ponieważ mongo używa własnego mechanizmu haszującego do zarządzania _id
, zwykle jest to ObjectId
z _id
ukryty. Przykład pokazany poniżej:
var ScoreSchema = new mongoose.Schema({
user : { type: Schema.Types.ObjectId, ref: 'User' },
game : { type: Schema.Types.ObjectId, ref: 'Game' },
score: Number
});
Jeśli z jakiegoś powodu musisz zachować identyfikator numeru do swoich danych, rozważ nazwanie go uid
lub coś, co nie będzie kolidować z wnętrzem mongo / mangusty. Powodzenia!