MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Was ist der eigentliche Zweck von $ref (DBRef) in MongoDb

Im Grunde ist ein DBRef eine selbstbeschreibende Objekt-ID, die ein clientseitiger Helfer, der in allen Treibern vorhanden ist (ich denke in allen), die Möglichkeit bietet, innerhalb Ihrer Anwendung verwandte Zeilen einfach zu erhalten.

Sie sind nicht:

  • VERBINDET
  • Kaskadierbare Beziehungen
  • Serverseitige Beziehungen
  • Serverseitig behoben

Sie werden auch nicht innerhalb von Map Reduce verwendet, die Funktionalität wurde aufgrund von Komplikationen beim Sharding herausgenommen.

Es ist jedoch nicht immer gut, diese zu verwenden, zum einen nehmen sie ziemlich viel Platz ein, wenn Sie die Sammlung kennen, die sich auf diese Zeile bezieht, im Vergleich zum einfachen Speichern der ObjectID. Nicht nur das, sondern aufgrund der Art und Weise, wie sie aufgelöst werden, muss jeder verwandte Datensatz stattdessen einzeln geladen werden, wenn es möglich ist, (einfach) einen Bereich zu bilden, um auf einmal nach verwandten Zeilen abzufragen, damit sie die Anzahl der Abfragen erhöhen können Sie gelangen auch zur Datenbank, indem Sie die Cursors erhöhen.