Zasadniczo DBRef jest samoopisującym się identyfikatorem ObjectID, którego helper po stronie klienta, który istnieje we wszystkich sterownikach (chyba wszystkim), umożliwia w aplikacji łatwe uzyskanie powiązanych wierszy.
Nie są:
- Dołączenia
- Relacje kaskadowe
- Relacje po stronie serwera
- Rozwiązana po stronie serwera
Nie są również używane w Map Reduce, funkcjonalność została usunięta z powodu komplikacji przy shardingu.
Jednak korzystanie z nich nie zawsze jest świetne, ponieważ zajmują one sporo miejsca, jeśli znasz kolekcję powiązaną z tym wierszem w porównaniu do przechowywania identyfikatora ObjectID. Nie tylko to, ale ze względu na to, jak są rozwiązywane, każdy powiązany rekord musi być ładowany z opóźnieniem jeden po drugim, jeśli jest w stanie utworzyć zakres (łatwo) do zapytania o powiązane wiersze za jednym razem, dzięki czemu można zwiększyć liczbę zapytań wprowadzasz również do bazy danych, z kolei zwiększając liczbę kursorów.