MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Използва се като графична база данни за намиране на приятели на приятели в MongoDb

Въпреки че не би било невъзможно, MongoDB не би била подходяща за този сценарий.

Причината е, че MongoDB не прави JOINs. Когато имате нужда от заявка, която обхваща множество документи, имате нужда от отделна заявка за всеки документ.

Във вашия пример всеки user документ ще има масив с _id на техни приятели. За да намерите „всички приятели на приятелите на Потребител A, които също са приятели на Потребител B“, би означавало, че ще:

  1. намерете userA и вземете неговия масив от приятели
  2. намерете всички потребители в този масив и вземете техните масиви за приятели
  3. намерете всички потребители в тези масиви, които имат UserB в техния масив с приятели

Това са три заявки, които трябва да изпълните. Между всяка от тези заявки, наборът от резултати трябва да бъде изпратен до приложението, приложението трябва да формулира нова заявка и да я изпрати обратно към базата данни. Наборът от резултати, върнат от втората заявка, може да бъде доста голям, което означава, че третата заявка може да отнеме известно време.

tl;dr: Използвайте правилния инструмент за работата. Когато вашите данни са базирани на графики и искате да правите базирани на графики заявки върху тях, използвайте база данни с графики.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Експортиране на MySQL в MongoDB

  2. съвпадение на многобайтови utf8 символи в регулярен израз на mongodb

  3. Concat int и полета за низов масив, които са в различни масиви

  4. Поведение на проекция на Morphia например променлива със стойност по подразбиране

  5. Атомарна актуализация на MongoDB чрез документ за „сливане“.