Z dokumentacji mongo tutaj:modelowanie danych
W niektórych sytuacjach możesz wybrać przechowywanie informacji w kilku kolekcjach, a nie w jednej kolekcji.
Rozważ przykładowe dzienniki kolekcji, które przechowują dokumenty dzienników dla różnych środowisk i aplikacji. Zbiór dzienników zawiera dokumenty o następującej postaci:
{ log:"dev", ts:..., info:... } { log:"debug", ts:..., info:...}
Jeśli łączna liczba dokumentów jest niewielka, możesz pogrupować dokumenty w kolekcje według typu. W przypadku dzienników rozważ utrzymanie odrębnych kolekcji dzienników, takich jak logs.dev i logs.debug. Kolekcja logs.dev zawierałaby tylko dokumenty związane ze środowiskiem deweloperskim.
Ogólnie rzecz biorąc, posiadanie dużej liczby kolekcji nie powoduje znaczącej utraty wydajności i skutkuje bardzo dobrą wydajnością. Wyraźne kolekcje są bardzo ważne dla wysokowydajnego przetwarzania wsadowego.
Rozmawiałem też z facetem 10gen. W przypadku naprawdę dużych kolekcji wymienił wiele korzyści wynikających z podziału na mniejsze, bardziej szczegółowe kolekcje. Jego komentarz na temat używania jednej kolekcji dla wszystkich danych i używania indeksu brzmiał:
To, że możesz coś zrobić, nie oznacza, że powinieneś. Odpowiednio modeluj swoje dane. może być łatwe do przechowywania w jednej dużej kolekcji i indeksie, ale nie zawsze jest to najlepsze podejście.