Latest web development tutorials

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을 반환합니다.