GridFS Innledning
GridFS
er MongoDB spesifikasjon for lagring og gjenfinning av store filer som bilder, lydfiler, videofiler, etc. Det er slags et filsystem til å lagre filer, men dens data er lagret i MongoDB samlinger. GridFS har evnen til å lagre filer enda større enn sin dokumentstørrelsesbegrensningen på 16 MB.
GridFS deler en fil i biter og lagrer hver klump av data i et eget dokument, hver av maksimal størrelse 255k.
GridFS som standard bruker to samlinger fs.files Hotell og fs.chunks
å lagre filens metadata og biter. Hver del er identifisert av sin unike _id objectID feltet. De fs.files kutter som forelder dokument. files_id
feltet i fs.chunks dokumentet knytter blings til sin overordnede.
Følgende er et eksempel dokument av fs.files samling:
{"filnavn": "test.txt", "CHUNKSIZE": NumberInt (261 120), "uploadDate": ISODate (" 2014-04-13T11: 32: 33.557Z ")," md5 ":" 7b762939321e146569b07f72c62cca4f "," lengde ": NumberInt (646)}
Dokumentet angir navnet på filen, blings størrelse, lastet opp dato, og . lengde
Følgende er et eksempel dokument av fs.chunks dokumentet:
{"files_id": objectID ("534a75d19f54bfec8a2fe44b"), "n": NumberInt (0), "data": "Mongo Binary data"}
Legge filer til GridFS:
Nå vil vi lagre en mp3-fil ved hjelp GridFS bruker sette
kommando. For dette vil vi bruke mongofiles.exe
verktøyet til stede i bin mappen på installasjonsmappen MongoDB.
Åpne ledeteksten navigere til mongofiles.exe i bin-mappen på installasjonsmappen MongoDB og skriv inn følgende kode:
> mongofiles.exe -d gridfs sette song.mp3
Her gridfs
er navnet på databasen der filen skal lagres. Hvis databasen ikke er til stede, vil MongoDB automatisk opprette et nytt dokument på fly. Song.mp3 er navnet på filen uploaded.To se filens dokument i databasen, kan du bruke finne spørring:
> db.fs.files.find ()
Kommandoen ovenfor returnerte følgende dokument:
{_id: objectID ('534a811bf8b4aa4d33fdf94d'), filnavn: "song.mp3", CHUNKSIZE: 261120, uploadDate: new Date (1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41", lengde: 10401959 }
Vi kan også se alle biter stede i fs.chunks samling knyttet til den lagrede filen med følgende kode, bruker dokument id tilbake i det forrige søket:
> db.fs .chunks.find ({files_id: objectID ('534a811bf8b4aa4d33fdf94d')}).
I mitt tilfelle, returnerte spørre 40 dokumenter som betyr at hele mp3 dokumentet ble delt i 40 biter av data Anmeldelser