Jeśli Twoje zdjęcia są małe, możesz je przechowywać jako dane binarne w dokumentach w kolekcji. Weź pod uwagę, że będziesz je pobierać za każdym razem, gdy będziesz pytał o dokument (chyba że wykluczysz pole "image" ze swoich zapytań).
Jeśli jednak twoje zdjęcia są większe, użyłbym GridFS. GridFS ma pewne cechy, które sprawiają, że jest bardzo dobry na obsługę obrazów, które należy rozważyć:
- W przypadku większych zdjęć, gdy są one przechowywane w GridFs zostaną one podzielone na kawałki i można przechowywać bardzo duże pliki. Jeśli próbujesz zapisać obrazy w dokumencie, ogranicza Cię maksymalny rozmiar dokumentu 16 MB i zużywasz miejsce, które należy wykorzystać do faktycznego dokumentu.
- Możesz dodać metadane do samego obrazu i uruchamiać kwerendy dla tych atrybutów, tak jakby robiłeś to z normalnego dokumentu w kolekcji. Tak więc GridFS jest tak dobry jak dokument dla metadanych dotyczących obrazu.
- Naprawdę podoba mi się, że otrzymuję skrót MD5 obliczony na obrazach. (Jest to bardzo przydatne w niektórych moich przypadkach).
- Zapisując obrazy w GridFS zaoszczędzić sobie wstępne przetwarzanie obrazu w formacie binarnym (nic wielkiego, ale wygodę GridFS)
Pod względem wydajności, czytanie/pisanie na zwykłej dokument powinien nie inaczej niż w GridFS. Nie uważam, że wydajność jest wyróżnikiem przy wyborze jednego z nich.
Moja osobista rekomendacja jest zgodna z GridFS, ale musisz przeanalizować swój konkretny przypadek użycia.
Mam nadzieję, że to pomoże.
helo @luckytaxi „0 dół głosowania \t używam GridFS do przechowywania zdjęć i dokumentów. Jest to tak proste i pobierania go z kolekcji, aby wyświetlić lub zapisać lokalnie jest łatwe.” czy możesz wyjaśnić, w jaki sposób przesyłasz, pobierając i wyświetlając obraz lokalnie? –
Wszelkie przykłady tego przez przypadek, faktycznie próbuję to zrobić dokładnie dla zdjęć profilu użytkownika – Lion789