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

Melhor maneira de armazenar/obter valores referenciados de uma lista no Mongo/RectiveMongo?


Eu abordei esse problema exato um tempo atrás.

Não há junções no mongo. Você deve cuidar manualmente da junção.

Suas opções são:
  1. Percorra cada entrada de comentário e consulte o mongo para o usuário. é isso que você está fazendo.
  2. Receba todos os IDs de usuários dos comentários, consulte o mongo para os usuários que correspondem a esses IDs e, em seguida, tome cuidado para corresponder o usuário ao comentário. Foi exatamente o que você fez, mas um pouco mais otimizado.
  3. Incorpore o usuário em comentários ou comentários em usuários. Não recomendaria isso, provavelmente este não é o lugar certo para comentários/usuários.
  4. Pense em qual conjunto de dados você precisa do usuário ao exibir um comentário e incorpore apenas essas informações no comentário

Acabei optando pela última opção.
Incorporamos o ID do usuário, nome e sobrenome em cada comentário. É improvável que essas informações mudem (possivelmente nem mesmo com permissão para alterar após a criação?).
Se ele pode mudar, então não é muito difícil adaptar o método update-user para atualizar os comentários relacionados com as novas informações (nós fizemos isso também).
Então agora nenhuma junção é necessária.