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

Wiele do wielu aktualizacji w MongoDB bez transakcji

@Gareth , możesz to zrobić na wiele sposobów. Kluczowym problemem jest więc to, jak planujesz wysyłać zapytania o dane (tj.:jakie zapytania muszą być szybkie )

Oto kilka metod.

Metoda nr 1:kolekcja „linki”

Możesz zbudować kolekcję, która po prostu zawiera mapowania między kolekcjami.

Zalety:

  • Obsługuje atomowe aktualizacje, dzięki czemu dane nie zostaną utracone

Wady:

  • Dodatkowe zapytanie podczas próby poruszania się między kolekcjami

Metoda nr 2:przechowuj kopie mniejszych mapowań w większej kolekcji

Na przykład:masz miliony Products , ale tylko sto Categories . Następnie zachowałbyś Categories jako tablica wewnątrz każdego Product .

Zalety:

  • Najmniejszy ślad
  • Potrzebujesz tylko jednej aktualizacji

Wady:

  • Dodatkowe zapytanie, jeśli pójdziesz „złą drogą”

Metoda nr 3:przechowuj kopie wszystkich mapowań w obu kolekcjach

(co sugerujesz)

Zalety:

  • Dostęp do pojedynczego zapytania, aby poruszać się między kolekcjami

Wady:

  • Potencjalnie duże indeksy
  • Wymaga transakcji (?)

Porozmawiajmy o „potrzebach transakcji”. Istnieje kilka sposobów przeprowadzania transakcji i naprawdę zależy to od wymaganego rodzaju bezpieczeństwa.

Zdecydowanie możesz to zrobić. Musisz zadać sobie pytanie, co najgorszego może się wydarzyć, jeśli tylko jeden z zapisów się nie powiedzie?

Sposób 4:kolejkowanie zmiany

Nie wiem, czy kiedykolwiek pracowałeś z kolejkami, ale jeśli masz trochę swobody, możesz zbudować prostą kolejkę i mieć różne zadania, które aktualizują swoje kolekcje.

To znacznie bardziej zaawansowane rozwiązanie. Zdecydowałbym się na #2 lub #3.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Utwórz indeks tekstowy z różnymi wagami pól w MongoDB

  2. Operatory MongoDB $gt/$lt z cenami przechowywanymi w postaci ciągów

  3. Nie można połączyć się z serwerem mongodb podczas korzystania z NodeJS

  4. MongoDB 2.4.1 jest już dostępny w ScaleGrid

  5. Lista kontrolna rozwoju i operacji dla MongoDB