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

MongoDB $slice (indlejret array-paging)

Så jeg vil sige, at du skal skifte dit skema til at efterlade kommentarer som separate dokumenter, da dette er et ubundet array, og det vil gøre dine forespørgsler mere effektive. Jeg vil forklare det.

Når du tilføjer indlejrede dokumenter til et array, der ikke er en fast størrelse, vil mongoDB potentielt skulle flytte dokumentet rundt, efterhånden som det vokser, ændre udfyldningsfaktoren og forårsage fragmentering (udfyldningsfaktoren er et gæt fra mongodbs side af, hvor stort dit dokument vil vokser, det forudtildeler mere plads til den sag).

Du er også begrænset til 16 MB pr dokument, så forestil dig, at hvis du får en vanvittig populær tråd, eller du beslutter dig for at udvide kommentarer med andre metadata, er det muligt, at du vil bryde den barriere. Det er også dyrt og tidskrævende at hente et stort dokument.

Generelt er indlejrede dokumenter gode, hvis de ikke er ubundne arrays. Så det vil fungere godt at holde en liste over de 10 bedste kommentarer, men det er dårligt at beholde 1000 kommentarer.

Der er nogle gode præsentationer under

http://www.10gen.com/presentations /mongodb-berlin/2012/10-key-performance-indicators http://www.10gen.com/presentations/mongosv -2011/schema-design-by-example

Jeg tror, ​​at der snart kommer mere arbejde med skemadesign, som vil være mere nyttigt på lang sigt. Jeg synes, det er det sværeste at være ærlig. Jeg ved godt, det tog mig et stykke tid at vikle hovedet rundt om forskellene fra relationelle modeller.




  1. psycopg2 fejler ved at udføre mange sætninger med syntaksfejl

  2. Beregn medianen i MongoDB aggregeringsramme

  3. Opdater array-element i mongo

  4. Dokument Læs og indsæt med låsning/transaktion i nodejs med mongodb