English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MongoDB GridFS

GridFS는 이미지, 오디오 파일, 비디오 파일 등 큰 파일을 저장하고 검색하기 위한 MongoDB 표준입니다. 파일 시스템과 유사하지만, 데이터는 MongoDB 컬렉션에 저장됩니다. GridFS는 문서 크기 제한을 초과할 수 있는 데이터를 저장할 수 있습니다.16mb)의 파일을 저장할 수 있습니다.

GridFS는 파일을 여러 블록으로 나누고, 각 데이터 블록을 별도의 문서에 저장하여, 파일의 최대 크기를255k.

기본적으로 GridFS는 두 개의 컬렉션을 사용합니다.fs.files하고fs.chunks파일의 메타데이터와 블록을 저장합니다. 각 블록은 유일한 _id ObjectId 필드로 구분됩니다. fs.files는 부모 문서로 사용됩니다.files_idfs.chunks 문서의 필드는 블록을 부모 문서에 링크합니다.

다음은 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에 추가합니다

이제 우리는 다음을 사용하겠습니다.putGridFS에 mp 저장하는 명령어를 사용합니다.3파일을 사용합니다. 이를 위해mongofiles.exeMongoDB 설치 폴더의 bin 폴더에 있는 도구.

명령 프롬프트를 엽니다. MongoDB 설치 폴더의 bin 폴더에 있는 mongofiles.exe에 이동한 후 다음 코드를 입력합니다.-

>mongofiles.exe -d gridfs put song.mp3

이곳gridfs파일을 저장할 데이터베이스의 이름입니다. 데이터베이스가 존재하지 않으면 MongoDB가 자동으로 동적으로 새 문서를 생성합니다. Song.mp3은 업로드 파일의 이름입니다. 데이터베이스에서 파일 문서를 보려면 find 쿼리를 사용할 수 있습니다.-

>db.fs.files.find()

위의 명령어는 다음과 같은 문서를 반환했습니다:-

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

이전 쿼리에서 반환된 문서 ID를 사용하여 fs.chunks 컬렉션에서 저장 파일과 관련된 모든 블록을 볼 수 있습니다:

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

저의 경우, 이 쿼리는40개의 문서로 나누어져 있습니다. 이는 전체 mp3문서는40개의 데이터 블록。