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

qual é o real propósito de $ref (DBRef) no MongoDb


Basicamente, um DBRef é um ObjectID auto-descritivo que um ajudante do lado do cliente, que existe em todos os drivers (acho que todos), fornece a capacidade dentro de seu aplicativo de obter linhas relacionadas facilmente.

Eles não são:
  • JUNTOS
  • Relações em cascata
  • Relações do lado do servidor
  • Resolvido no lado do servidor

Eles também não são usados ​​no Map Reduce, a funcionalidade foi retirada devido a complicações com o sharding.

No entanto, nem sempre é ótimo usá-los, pois eles ocupam um pouco de espaço se você conhecer a coleção relacionada a essa linha em comparação com apenas armazenar o ObjectID. Não apenas isso, mas devido à forma como eles são resolvidos, cada registro relacionado precisa ser carregado lentamente um por um, se for capaz de formar um intervalo (facilmente) para consultar linhas relacionadas de uma só vez, para que possam aumentar a quantidade de consultas você faz para o banco de dados também, por sua vez, aumentando os cursores.