MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

qual è il vero scopo di $ref (DBRef) in MongoDb

Fondamentalmente un DBRef è un ObjectID che si autodescrive che un helper lato client, che esiste in tutti i driver (penso in tutti), offre la possibilità all'interno della tua applicazione di ottenere facilmente righe correlate.

Non sono:

  • Unisciti
  • Relazioni a cascata
  • Relazioni lato server
  • Risolto lato server

Inoltre, non vengono utilizzati in Map Reduce, la funzionalità è stata eliminata a causa di complicazioni con il partizionamento orizzontale.

Tuttavia, non è sempre fantastico usarli, perché occupano un bel po' di spazio se si conosce la raccolta correlata a quella riga rispetto alla semplice memorizzazione dell'ObjectID. Non solo, ma a causa del modo in cui vengono risolti, ogni record correlato deve essere caricato in modo pigro uno per uno invece se è in grado di formare un intervallo (facilmente) per eseguire query per righe correlate tutto in una volta, in modo che possano aumentare la quantità di query fai anche al database, a sua volta aumentando i cursori.