MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB $slice (paginação de matriz incorporada)


Então, vou dizer que você deve mudar seu esquema para deixar comentários como documentos separados, pois este é um array não vinculado e tornará suas consultas mais eficientes. Eu vou explicar.

Quando você adiciona documentos incorporados a uma matriz que não é de tamanho fixo, o mongoDB potencialmente precisará mover o documento à medida que ele cresce, alterando o fator de preenchimento e causando fragmentação (o fator de preenchimento é uma estimativa do lado do mongodb sobre o tamanho do seu documento crescer, ele pré-aloca mais espaço para esse caso).

Você também está limitado a um documento pr de 16 MB, então imagine se você receber um tópico popular maluco ou decidir estender comentários com outros metadados, é possível que você quebre essa barreira. Recuperar um documento grande também é caro e demorado.

Em geral, os documentos incorporados são ótimos se não forem matrizes não vinculadas. Portanto, manter uma lista dos 10 principais comentários funcionará muito bem, mas manter mais de 1.000 comentários é ruim.

Há algumas boas apresentações sob

http://www.10gen.com/presentations /mongodb-berlin/2012/10-key-performance-indicators http://www.10gen.com/presentations/mongosv -2011/design-de-esquema-por-exemplo

Acho que em breve haverá mais trabalho no design do esquema que será mais útil a longo prazo. Eu acho que é a parte mais difícil para ser honesto. Eu sei, demorei um pouco para entender as diferenças dos modelos relacionais.