MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB - przykład odniesień ręcznych

Dokumentacja jest dość przejrzysta w sekcji podręcznika, do której się odnosisz, która jest sekcją dotyczącą Odniesienia do baz danych . Najważniejsza część w zrozumieniu tego jest zawarta w oświadczeniu otwierającym na stronie:

Dalsze informacje obejmują temat, w jaki sposób możesz zdecyduj się na dostęp do danych, które przechowujesz w innej kolekcji.

Istnieje DBRef specyfikacja, która bez wchodzenia w szczegóły, może być zaimplementowane w niektórych sterownikach w taki sposób, że gdy zostaną znalezione w twoich dokumentach, automatycznie odzyskają (rozszerzą) dokument odniesienia do bieżącego dokumentu. Zostałoby to zaimplementowane „za kulisami” z innym zapytaniem do tej kolekcji dla dokumentu o tym _id.

W przypadku Odniesienia ręczne to po prostu mówi, że w twoim dokumencie jest tylko pole, które zawiera jako zawartość ObjectId z innego dokumentu. Różni się to od DBRef tylko tym, że nigdy być przetwarzane przez podstawową implementację sterownika, pozostawia sposób obsługi dalszego pobierania tego innego dokumentu wyłącznie do Ciebie.

W przypadku:

> db.collection.findOne()

{
   _id: <ObjectId>,
   name: "This",
   something: "Else",
   ref: <AnotherObjectId>
}

ref pole w dokumencie jest niczym więcej niż zwykłym identyfikatorem ObjectId i nie robi nic specjalnego. Pozwala to na przesłanie własnego zapytania, aby uzyskać szczegóły obiektu, do których się to odnosi:

> db.othercollection.findOne({ _id: <AnotherObjectId > })
{
  _id: <ObjectId>
  name: "That"
  something: "I am a sub-document to This!"
}

Pamiętaj, że wszystkie te procesy po stronie klienta za pośrednictwem interfejsu API sterownika. Żadne z tych pobierania innych dokumentów w żadnym wypadku nie dzieje się na serwerze.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB wstawia dokument lub pole inkrementacji, jeśli istnieje w tablicy

  2. MomentJS nie konwertuje poprawnie daty

  3. Jak zaimportować MongoDB za pomocą importów w stylu es6?

  4. Mongodb - $grupa wewnątrz $grupy (przez „klucz”)

  5. Jak użyć pymongo, aby połączyć się z istniejącą kolekcją dokumentów/bazą danych?