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

Много към много актуализиране в MongoDB без транзакции

@Гарет , имате няколко законни начина да направите това. Така че тяхната основна грижа е как планирате да правите заявки за данните (т.е.:какви заявки трябва да бъдат бързи )

Ето няколко метода.

Метод №1:колекцията „връзки“

Можете да създадете колекция, която просто съдържа съпоставяния между колекциите.

Плюсове:

  • Поддържа атомарни актуализации, така че данните да не се губят

Недостатъци:

  • Допълнителна заявка при опит за придвижване между колекции

Метод №2:съхранявайте копия на по-малки съпоставяния в по-голяма колекция

Например:имате милиони Products , но само сто Categories . Тогава ще съхраните Categories като масив във всеки Product .

Плюсове:

  • Най-малък отпечатък
  • Необходима е само една актуализация

Недостатъци:

  • Допълнително запитване, ако тръгнете по „грешния път“

Метод #3:съхранявайте копия на всички съпоставяния в двете колекции

(какво предлагате)

Плюсове:

  • Достъп до една заявка за придвижване между двете колекции

Недостатъци:

  • Потенциално големи индекси
  • Необходими са транзакции (?)

Нека поговорим за „транзакции за нужди“. Има няколко начина за извършване на транзакции и наистина зависи от това какъв тип безопасност имате нужда.

Определено можете да направите това. Ще трябва да се запитате какво е най-лошото, което се случва, ако само едно от спасяванията е неуспешно?

Метод #4:поставете промяната в опашка

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

Това е много по-модерно решение. Бих предпочел №2 или №3.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да направя upsert с MongoDB 2.0?

  2. Използване на $graphLookup за преминаване на вложена структура от данни в MongoDB

  3. MongoDB заявка за всички документи с уникално поле

  4. Как да използвам $add във функцията update() в Mongo?

  5. Как да генерирате и изтеглите pdf с път на динамично изображение от база данни, като използвате всякакви npm пакети