Jak mogę przechowywać obrazy w bazie danych MongoDB, a nie tylko tekst? Czy mogę utworzyć tablicę obrazów w bazie danych MongoDB? Czy będzie można zrobić to samo z filmami?
GridFS jest przeznaczony dla dokumentów> 16 MB. Nie wszystkie dane binarne są tak duże. Oprócz możliwości przekroczenia tego limitu, czy są jakieś inne korzyści z używania GridFS zamiast tylko typu BinData?
Brandon Fitzpatrick
3
Filmy mają zwykle rozmiar> 16 MB, więc ta odpowiedź jest prawdopodobnie rozsądna. Powinienem jednak o tym wspomnieć.
Chanoch
1
jakieś inne rozwiązanie, zamiast korzystania z GridFS?
Abhishek Mani
1
@AbhishekMani innym rozwiązaniem jest w ogóle nie przechowywać ich w MongoDB. Teraz, w 2018 roku, zapisywanie tych danych do czegoś takiego jak magazyn Amazon S3 lub Azure BLOB jest nieskończenie łatwiejszy.
Dokumenty MongoDB BSON są ograniczone do 16 MB. Więc jeśli całkowity rozmiar twojej tablicy plików jest mniejszy, możesz przechowywać je bezpośrednio w swoim dokumencie przy użyciu typu danych BinData .
Filmy, obrazy, pliki PDF, arkusze kalkulacyjne itp. - nie ma znaczenia, wszystkie są traktowane tak samo. Do aplikacji należy zwrócenie odpowiedniego nagłówka typu zawartości w celu ich wyświetlenia.
W NPM dostępna jest wtyczka Mongoose o nazwie mongoose-file. Pozwala dodać pole pliku do schematu Mongoose w celu przesłania pliku. Nigdy go nie używałem, ale może się przydać. Jeśli obrazy są bardzo małe, możesz je zakodować w Base64 i zapisać ciąg w bazie danych.
Możesz użyć typu danych bin, jeśli używasz dowolnego języka skryptowego do przechowywania plików / obrazów w MongoDB. Dane bin są opracowywane w celu przechowywania małych rozmiarów plików.
Zapoznaj się ze sterownikiem języka skryptowego. W przypadku PHP kliknij tutaj .
base64
, zobacz stackoverflow.com/questions/11442356. Znalazłem również menge.io/2015/03/24/storing-small-images-in- mongodb to bardzo dobry punkt wyjścia.Odpowiedzi:
Szczegółowe informacje na temat przechowywania takich danych binarnych można znaleźć w dokumentacji GridFS .
Link do wsparcia dla Twojego konkretnego języka powinien znajdować się u dołu ekranu.
źródło
Dokumenty MongoDB BSON są ograniczone do 16 MB. Więc jeśli całkowity rozmiar twojej tablicy plików jest mniejszy, możesz przechowywać je bezpośrednio w swoim dokumencie przy użyciu typu danych BinData .
Filmy, obrazy, pliki PDF, arkusze kalkulacyjne itp. - nie ma znaczenia, wszystkie są traktowane tak samo. Do aplikacji należy zwrócenie odpowiedniego nagłówka typu zawartości w celu ich wyświetlenia.
Sprawdź dokumentację GridFS, aby uzyskać więcej informacji.
źródło
Możesz spróbować tego:
źródło
http://blog.mongodb.org/post/183689081/storing-large-objects-and-files-in-mongodb
W NPM dostępna jest wtyczka Mongoose o nazwie mongoose-file. Pozwala dodać pole pliku do schematu Mongoose w celu przesłania pliku. Nigdy go nie używałem, ale może się przydać. Jeśli obrazy są bardzo małe, możesz je zakodować w Base64 i zapisać ciąg w bazie danych.
Przechowywanie małych (poniżej 1 MB) plików w MongoDB w NodeJS BEZ GridFS
źródło
Możesz użyć typu danych bin, jeśli używasz dowolnego języka skryptowego do przechowywania plików / obrazów w MongoDB. Dane bin są opracowywane w celu przechowywania małych rozmiarów plików.
Zapoznaj się ze sterownikiem języka skryptowego. W przypadku PHP kliknij tutaj .
źródło
zainstaluj poniżej biblioteki
podłącz swoją bazę danych mongo:
Zdefiniuj schemat bazy danych
używając oprogramowania pośredniego Multer, aby przesłać zdjęcie po stronie serwera.
post req do naszej bazy danych
źródło
Twoim zdaniem:
Za pomocą tego kodu możesz dodawać pojedyncze lub wiele obrazów w MongoDB.
źródło
To zadziałało dla mnie,
źródło