Latest web development tutorials

MongoDB GridFS

GridFS do przechowywania i przywracania osób powyżej 16M (limit plików BSON) plików (takich jak: zdjęcia, audio, wideo, itp.)

Jednym ze sposobów jest GridFS przechowywania plików, ale jest w kolekcja jest przechowywana w MonoDB.

GridFS lepszą pamięć niż dokumenty 16M.

GridFS będzie skierowany dużych plików na kilka mniejszych bryłkach (plik fragment), zazwyczaj 256K /, po jednej dla każdego kawałka jako dokument MongoDB (dokument) znajduje się w kolekcji kawałki.

GridFS dwóch kolekcji do przechowywania plik: fs.files i fs.chunks.

Rzeczywista zawartość każdego pliku przechowywane są w kawałkach (dane binarne) dane meta i dokumentów odnoszących się do (nazwa pliku, content_type, jak i atrybutów zdefiniowanych przez użytkownika) zostanie ono zapisane w plikach w kolekcji.

Poniżej znajduje się zbiór prostych fs.files dokumentów:

{
   "filename": "test.txt",
   "chunkSize": NumberInt(261120),
   "uploadDate": ISODate("2014-04-13T11:32:33.557Z"),
   "md5": "7b762939321e146569b07f72c62cca4f",
   "length": NumberInt(646)
}

Poniżej znajduje się zbiór prostych fs.chunks dokumentów:

{
   "files_id": ObjectId("534a75d19f54bfec8a2fe44b"),
   "n": NumberInt(0),
   "data": "Mongo Binary Data"
}

GridFS Dodaj plik

Teraz używamy GridFS poleceń put do przechowywania plików mp3. Zadzwoń MongoDB katalogu instalacyjnego bin mongofiles.exe narzędzia.

Otwórz wiersz polecenia, przejdź do katalogu bin MongoDB katalogu instalacyjnym zlokalizuj mongofiles.exe i wprowadź następujący kod:

>mongofiles.exe -d gridfs put song.mp3

GridFS to nazwa pliku danych jest przechowywana. Jeśli baza danych nie istnieje, MongoDB zostanie utworzony automatycznie. Piosenka.mp3 jest audio nazwa pliku.

Użyj następujących poleceń do przeglądania dokumentów w pliku bazy danych:

>db.fs.files.find()

Po wykonaniu powyższego polecenia zwraca następujące dane dokumentu:

{
   _id: ObjectId('534a811bf8b4aa4d33fdf94d'), 
   filename: "song.mp3", 
   chunkSize: 261120, 
   uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",
   length: 10401959 
}

Widzimy wszystkie bloki fs.chunks zestawu, otrzymujemy następujące wartości _id dokument, możemy uzyskać bloku (chunk) danych zgodnie z niniejszą _id:

>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})

Powyższy przykład, kwerenda zwraca dane 40 dokumentu, co oznacza, że ​​pliki mp3 są przechowywane w 40 blokach.