sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cuál es el propósito real de $ref (DBRef) en MongoDb?

Básicamente, un DBRef es un ID de objeto autodescriptivo que un ayudante del lado del cliente, que existe en todos los controladores (creo que en todos), brinda la capacidad dentro de su aplicación para obtener filas relacionadas fácilmente.

No son:

  • ÚNETE
  • Relaciones en cascada
  • Relaciones del lado del servidor
  • Lado del servidor resuelto

Tampoco se usan dentro de Map Reduce, la funcionalidad se eliminó debido a complicaciones con la fragmentación.

Sin embargo, no siempre es bueno usarlos, por un lado, ocupan bastante espacio si conoce la colección que está relacionada con esa fila en comparación con solo almacenar el ObjectID. No solo eso, sino que debido a la forma en que se resuelven, cada registro relacionado debe cargarse de forma diferida uno por uno en lugar de poder formar un rango (fácilmente) para consultar filas relacionadas de una sola vez, para que puedan aumentar la cantidad de consultas también haces en la base de datos, aumentando a su vez los cursores.