sql >> Databasteknik >  >> NoSQL >> MongoDB

Relationell databasdesign till mongoDB/mongoose-design

Mongoose är utformad på ett sådant sätt att du kan modellera dina tabeller relationellt med relativ lätthet och fylla i relationsdata baserat på ref du definierade i schemat. Problemet är att du måste vara försiktig med att fylla. Om du befolkar för mycket eller häckar dina populationer kommer du att stöta på prestandaflaskhalsar.

Ditt tillvägagångssätt i Edit 1 är i stort sett korrekt men du vill vanligtvis inte fylla i en fjärrkontrollerad ref baserat på ett Number eller ställ in _id av en modell till ett Number eftersom mongo använder sin egen hashmekanism för att hantera _id , skulle detta vanligtvis vara ett ObjectId med _id underförstådd. Exempel som visas nedan:

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

Om du av någon anledning behöver behålla ett nummer-ID för dina register, överväg att kalla det uid eller något som inte kommer i konflikt med mongo / mongoose internals. Lycka till!



  1. Hur man tar bort MongoDB-dokument genom att importera en fil

  2. Övervakning av Percona Server för MongoDB - nyckelmått

  3. Redis och Node.js och Socket.io Frågor

  4. Stöd för flera användartyper av Passport-lokal mongoose node.js