sql >> Databasteknik >  >> NoSQL >> MongoDB

Inbäddat dokument kontra referens i mongoose designmodell?

Det beror mest på hur du ska fråga och uppdatera dina data. Konsekvens och dokumentstorlek är också viktigt i detta fall. Här är en bra sammanfattning om när du refererar till eller bäddar in dokument:

Inbäddning:

  • Små underdokument
  • Data som inte ändras regelbundet
  • Eventuell konsekvens är acceptabel
  • Dokument som växer med en liten mängd
  • Data som du ofta behöver för att utföra en andra fråga för att hämta
  • Snabbläsning

Refererar:

  • Stora underdokument
  • Flyktig data
  • Omedelbar konsekvens är nödvändig
  • Dokument som växer mycket
  • Data som du ofta utesluter från resultaten
  • Snabbskrivning

Det här är ett utdrag ur en bok om mongo jag läste. Det här är bara allmänna regler, men enligt min erfarenhet blir det väldigt tydligt att använda dem om man oftast ska referera till eller bädda in.

Jag skulle hellre referera till Forum i det här fallet. Men tänk på alla dina krav. Om du till exempel refererar till Forum från Användare och du behöver fråga alla användare av ett visst forum kan frågan vara långsam i det här fallet. Om jag var du skulle jag skapa en lista över allt jag behöver och sedan använda allmänna regler skulle jag hitta en balans mellan för- och nackdelar med inbäddning och referens.

Hoppas det hjälper!



  1. Hur kan jag uppdatera flera dokument i mongoose?

  2. Har Meteor en distinkt fråga för samlingar?

  3. Online Apache HBase Backups med CopyTable

  4. Är skillnaden mellan två listor igen?