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

Indlejret dokument vs reference i mongoose-designmodel?

Det afhænger mest af, hvordan du vil forespørge og opdatere dine data. Konsistens og dokumentstørrelse er også vigtig i dette tilfælde. Her er en god oversigt over, når der refereres til eller indlejres dokumenter:

Indlejring:

  • Små underdokumenter
  • Data, der ikke ændres regelmæssigt
  • Eventuel konsistens er acceptabel
  • Dokument, der vokser med en lille mængde
  • Data, som du ofte skal bruge for at udføre en anden forespørgsel for at hente
  • Hurtig læsning

Henvisning:

  • Store underdokumenter
  • Uflygtige data
  • Øjeblikkelig konsekvens er nødvendig
  • Dokument, der vokser en stor mængde
  • Data, som du ofte vil ekskludere fra resultaterne
  • Hurtig skrivning

Dette er et uddrag fra en bog om mongo, jeg læste. Dette er kun generelle regler, men efter min erfaring gør brugen af ​​dem det meget klart, om der skal henvises til eller indlejres de fleste gange.

Jeg vil hellere henvise til Forum i dette tilfælde. Men overvej venligst alle dine krav. Hvis du for eksempel refererer til Forum fra Bruger, og du skal forespørge alle brugere af et bestemt forum, kan forespørgslen være langsom i dette tilfælde. Hvis jeg var dig, ville jeg lave en liste over alt, hvad jeg har brug for, og så ville ved hjælp af generelle regler finde en balance mellem fordele og ulemper ved indlejring og henvisning.

Håber det hjælper!



  1. Accenter gemt i Redis kan ikke læses

  2. MongoDB:Får ikke korrekt resultat ved hjælp af $geoWithin-operatoren

  3. Forespørger MongoDB GridFS?

  4. Hvilke tegn er IKKE tilladt i MongoDB-feltnavne?