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

Pesquise em várias coleções no MongoDB


Esta resposta está desatualizada. Desde a versão 3.2, o MongoDB tem suporte limitado para associações externas à esquerda com o operador de agregação $lookup

O MongoDB não faz consultas que abrangem várias coleções - ponto final. Quando você precisa unir dados de várias coleções, deve fazê-lo no nível do aplicativo, fazendo várias consultas.
  1. Coleção de consultas A
  2. Pegue as chaves secundárias do resultado e coloque-as em uma matriz
  3. Coleção de consultas B passando essa matriz como o valor do $in-operator
  4. Junte os resultados de ambas as consultas programaticamente na camada do aplicativo

Ter que fazer isso deve ser mais a exceção do que a norma. Quando você precisa frequentemente emular JOINs como esse, isso significa que você ainda está pensando muito relacional ao projetar seu esquema de banco de dados ou que seus dados simplesmente não são adequados para o conceito de armazenamento baseado em documentos do MongoDB.