MongoDB를 GridFS
저장하고 (: 이미지, 오디오, 비디오, 등 등) 16M 이상 그 (BSON 파일 제한) 파일을 복원 GridFS.
편도 GridFS 파일 저장하지만 MonoDB 컬렉션에 저장된에서이다.
16M 문서보다 더 나은 메모리를 GridFS.
GridFS는 일반적으로 여러 개의 작은 덩어리 (파일 조각)에 큰 파일을 타겟으로 256K / MongoDB를 (문서)의 문서로 각 청크에 대해 하나의 덩어리 컬렉션에 저장됩니다.
fs.files 및 fs.chunks : 파일을 저장하는 두 개의 컬렉션을 GridFS.
각 파일의 실제 내용은이 컬렉션에있는 파일에 저장된다 (사용자 정의 속성뿐만 아니라, 파일 이름 CONTENT_TYPE) 청크 (바이너리 데이터)를, 메타 데이터와 관련된 문서에서 저장된다.
다음은 간단한 fs.files 문서의 모음입니다 :
{ "filename": "test.txt", "chunkSize": NumberInt(261120), "uploadDate": ISODate("2014-04-13T11:32:33.557Z"), "md5": "7b762939321e146569b07f72c62cca4f", "length": NumberInt(646) }
다음은 간단한 fs.chunks 문서의 모음입니다 :
{ "files_id": ObjectId("534a75d19f54bfec8a2fe44b"), "n": NumberInt(0), "data": "Mongo Binary Data" }
GridFS는 파일 추가
이제 우리는 mp3 파일을 저장하기 위해 put 명령의 GridFS를 사용합니다. mongofiles.exe 도구의 MongoDB를 설치 디렉토리 함을 호출합니다.
, bin 디렉토리 MongoDB를 설치 디렉토리로 이동, 명령 프롬프트를 열고 mongofiles.exe를 찾은 다음 코드를 입력합니다 :
>mongofiles.exe -d gridfs put song.mp3
GridFS 저장되는 데이터 파일의 이름이다. 데이터베이스가 존재하지 않는 경우, MongoDB를 자동으로 생성한다. Song.mp3 오디오 파일 이름이다.
데이터베이스 파일에있는 문서를 보려면 다음 명령을 사용하여
>db.fs.files.find()
위의 명령을 실행 한 후 다음과 같은 문서 데이터를 반환합니다 :
{ _id: ObjectId('534a811bf8b4aa4d33fdf94d'), filename: "song.mp3", chunkSize: 261120, uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41", length: 10401959 }
우리가 모든 블록 fs.chunks 세트를 볼 수 있고, 우리는 다음 _id 값 문서를 얻을 우리가 _id에 따라 데이터 블록 (덩어리)을 얻을 수있다 :
>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})
위의 예는, 쿼리는 데이터를 MP3 파일이 40 블록에 저장되는 것을 의미 문서의 40을 반환합니다.