sql >> Databáze >  >> NoSQL >> MongoDB

Použití jako graf databáze pro hledání přátel přátel v MongoDb

Ačkoli by to nebylo nemožné, MongoDB by se pro tento scénář nehodilo.

Důvodem je, že MongoDB neprovádí JOINy. Pokud potřebujete dotaz, který zahrnuje více dokumentů, potřebujete samostatný dotaz pro každý dokument.

Ve vašem příkladu každý user dokument by měl pole s _id jejich přátel. Chcete-li najít „všechny přátele přátel UživateleA, kteří jsou také přáteli UživateleB“, znamenalo by to, že:

  1. najít uživatele A a získat jeho pole přátel
  2. najít všechny uživatele v tomto poli a získat jejich pole přátel
  3. najít všechny uživatele v těchto polích, kteří mají UserB v poli přátel

Toto jsou tři dotazy, které musíte provést. Mezi každým z těchto dotazů musí být do aplikace odeslána sada výsledků, aplikace musí formulovat nový dotaz a poslat jej zpět do databáze. Sada výsledků vrácená z 2. dotazu může být poměrně velká, což znamená, že 3. dotaz může chvíli trvat.

tl;dr: Použijte správný nástroj pro danou práci. Pokud jsou vaše data založena na grafech a chcete na ně provádět dotazy založené na grafech, použijte databázi grafů.



  1. Co je to MapReduce Key Value Pair v Hadoop?

  2. Zkopírujte databázi v Mongoose

  3. Správný způsob importu souboru json do mongo

  4. Možnost automatického opětovného připojení Mongoose