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

Używanie jako bazy danych wykresów do znajdowania znajomych znajomych w MongoDb

Chociaż nie byłoby to niemożliwe, MongoDB nie byłoby dobrym rozwiązaniem dla tego scenariusza.

Powodem jest to, że MongoDB nie wykonuje JOIN. Jeśli potrzebujesz zapytania, które obejmuje wiele dokumentów, potrzebujesz osobnego zapytania dla każdego dokumentu.

W Twoim przykładzie każdy user dokument miałby tablicę z _id ich przyjaciół. Aby znaleźć „wszystkich znajomych znajomych Użytkownika A, którzy są również znajomymi Użytkownika B” oznaczałoby, że:

  1. znajdź użytkownika A i zdobądź tablicę jego znajomych
  2. znajdź wszystkich użytkowników w tej tablicy i uzyskaj ich tablice znajomych
  3. znajdź wszystkich użytkowników w tych tablicach, którzy mają UserB w swojej tablicy znajomych

Oto trzy zapytania, które musisz wykonać. Pomiędzy każdym z tych zapytań zestaw wyników musi zostać przesłany do aplikacji, aplikacja musi sformułować nowe zapytanie i odesłać je z powrotem do bazy danych. Zestaw wyników zwrócony z drugiego zapytania może być dość duży, co oznacza, że ​​trzecie zapytanie może trochę potrwać.

tl;dr: Użyj odpowiedniego narzędzia do pracy. Jeśli Twoje dane są oparte na wykresach i chcesz wykonywać na nich zapytania oparte na wykresach, użyj wykresowej bazy danych.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Data Mongodb:Aktualizacja dokumentów

  2. Problem z przesyłaniem danych JSON (z żądaniem węzła) na serwer Express w celu zapisania w MongoDB

  3. Wyszukiwanie zagnieżdżonych dokumentów MongoDB

  4. Zwiększanie limitu pamięci dla zadań agregujących mongodb

  5. Jak usunąć właściwość zagnieżdżonego obiektu z dokumentu MongoDB?