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

Relationel databasedesign til mongoDB/mongoose design

Mongoose er designet på en sådan måde, at du kan modellere dine tabeller relationelt med relativ lethed og udfylde relationelle data baseret på ref du definerede i skemaet. Sagen er, at du skal være forsigtig med at udfylde. Hvis du befolker for meget eller indlejrer dine populationer, vil du løbe ind i ydeevneflaskehalse.

Din tilgang i Edit 1 er stort set korrekt, men du ønsker normalt ikke at udfylde en ekstern ref baseret på et Number eller indstil _id af en model til et Number da mongo bruger sin egen hashing-mekanisme til at administrere _id , vil dette normalt være et ObjectId med _id underforstået. Eksempel som vist nedenfor:

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

Hvis du af en eller anden grund har brug for at vedligeholde et nummer-id for dine poster, kan du overveje at kalde det uid eller noget, der ikke vil være i konflikt med mongo / mongoose internals. Held og lykke!



  1. Opdatering af et indlejret array med MongoDB

  2. Hvordan konverterer man en pymongo.cursor.Cursor til en diktat?

  3. Brug af Redis til at cache SQL-resultat

  4. node.js:Mongodb db.collection.find() virker ikke, mens collection.insert virker