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

MongoDB Schema Design - Muitos documentos pequenos ou menos documentos grandes?


Você definitivamente precisará otimizar para as consultas que está fazendo.

Aqui está o meu melhor palpite com base na sua descrição.

Você provavelmente desejará saber todos os Cartões de Crédito de cada Cliente, portanto, mantenha uma matriz deles dentro do Objeto Cliente. Você provavelmente também desejará ter uma referência de cliente para cada pagamento. Isso manterá o documento de pagamento relativamente pequeno.

O objeto Payment terá automaticamente seu próprio ID e índice. Você provavelmente desejará adicionar um índice na referência do cliente também.

Isso permitirá que você pesquise rapidamente por Pagamentos por Cliente sem armazenar todo o objeto de cliente todas as vezes.

Se você quiser responder a perguntas como "Qual foi o valor médio que todos os clientes pagaram no mês passado" em vez disso, você desejará um mapa / redução para qualquer conjunto de dados considerável. Você não está recebendo esta resposta "em tempo real". Você descobrirá que armazenar uma "referência" para o Cliente provavelmente é bom o suficiente para essas reduções de mapa.

Então, para responder diretamente à sua pergunta:O MongoDB foi projetado para preferir muitos, muitos documentos pequenos ou menos documentos grandes?

O MongoDB foi projetado para encontrar entradas indexadas muito rapidamente. O MongoDB é muito bom em encontrar alguns poucos agulhas em um grande palheiro. MongoDB não muito bom em encontrar a maioria das agulhas no palheiro. Portanto, crie seus dados em torno de seus casos de uso mais comuns e escreva trabalhos de mapeamento/redução para os casos de uso mais raros.