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

Qual é a melhor estrutura de dados para armazenar esses dados no mongoDB?


Sua estrutura parece correta. Você está armazenando apenas news_id no campo de dados e essa é uma implementação mais inteligente, porque armazenar o documento completo causará muita movimentação e escrita pelo MongoDB toda vez que uma nova notícia for adicionada aos favoritos pelo usuário.

O motivo, que você provavelmente já sabe, é que um novo documento é criado a cada atualização. Referência:http://docs.mongodb.org/ manual/reference/method/db.collection.save/#upsert .

Também acho que como regra de negócio você deve restringir o número de notícias que podem ser definidas como favoritas pelo usuário. Permitir que essa lista cresça indefinidamente não será uma boa ideia para o design incorporado.

Caso você queira um número ilimitado de favoritos, é melhor criar uma coleção separada para isso e, em seguida, obter todos os favoritos de um usuário, use os operadores $match (no id do usuário) e $sort (de notícias) em uma consulta de agregação para obter a lista ordenada de itens de notícias favoritos para o usuário.