Tag Archives: doc

MongoDB – Dicas – Guarde dados em um único doc

1.5 Modelagem, Guarde todos os dados de uma entidade em um único doc!

Motivos não faltam para seguir esta regra, os dois mais importantes são: ACID e Performance.

O Mongo nos garante conformidade com ACID a nível de doc. Se os dados da nossa entidade estiverem espalhados entre:

  • Diversos documents, não temos garantia de consistência e integridade entre eles.
  • Diversas coleções, podemos perder a atomicidade.

Além disso, quando os dados do registro são guardados dentro de um mesmo doc, conseguimos retornar os dados com uma única consulta por “_id” (modo mais eficiente de retornar dados em qualquer base).

Suponha um e-commerce, além do schema instável que muitos varejistas possuem e que complica a vida das bases relacionais, hoje a tela de detalhes de um produto possui várias informações que podem ser guardadas juntamente com o produto, como:

  • reviews do produto
  • versões do produto
  • informações de entrega
  • imagens

No mundo relacional, todas essas informações que possuem cardinalidade variável virariam outras tabelas e usaríamos chaves estrangeiras na tabela de produto, no Mongo podemos sem problemas guardar todas em sub-docs e campos multi-valorados. Esse é um cenário comum, entre as empresas que já utilizam bases não-relacionais.

No entanto, existem cenários, onde não é útil guardar todos os dados em um único doc, onerando em operações como updates por exemplo. Isso é um trade-offs que deve ser pensado na arquitetura do app.