devterview_$ iniciar simulação

Antipadrões de modelagem no MongoDB

MédioPlenoModelagem de documento

Pergunta

Quais são antipadrões comuns de modelagem no MongoDB que aparecem em code review?

Resposta esperada

(1) Arrays sem limite (massive arrays) — `comentarios: [...]` num post que pode ter milhares: o documento cresce, passa a realocar, chega perto dos 16 MB, e atualizar um item fica caro. Use uma coleção separada com referência, ou embuta só os N mais recentes. (2) Muitas coleções pequenas / uma coleção por tenant — não escala em metadados e índices. (3) 'Bloated documents' — carregar campos gigantes (um blob, histórico completo) que quase nenhuma query usa; separe. (4) Índice pra tudo — cada índice custa em escrita e RAM; índice não usado é só peso (`$indexStats` mostra). (5) Modelar como relacional — tudo normalizado com referências e um `$lookup` em toda query, jogando fora a vantagem do documento. (6) Usar `_id` aleatório sem necessidade quando um natural serviria. O fio condutor: modelar por como o app lê, e vigiar o crescimento não-limitado.

Por que perguntam isso

Pergunta pleno de Mongo. Sinal de experiência: 'massive arrays', `$indexStats` pra achar índice morto, 'modelar relacional joga fora a vantagem'.

#antipadroes#modelagem#massive-arrays
publicidade

Relacionadas