Latest web development tutorials

MongoDBのGridFS

格納および(:画像、オーディオ、ビデオ、などなど)16M以上の方(BSONファイルの制限)ファイルを復元するためのGridFS。

一つの方法は、GridFSファイルストレージであるが、コレクションはMonoDBに格納されているです。

16M文書よりも優れたメモリをGridFS。

GridFSは、複数の小さなチャンク(ファイルの断片)、典型的には256K /、MongoDBの(文書)の文書はチャンクのコレクションに格納されている各チャンクの一つに大容量のファイルを対象とします。

fs.filesとfs.chunks:ファイルを保存するために2つのコレクションを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を呼び出します。

コマンドプロンプトを開き、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 
}

我々は、我々は次の_id値文書を取得し、我々はこの_idに従ってデータのブロック(チャンク)を得ることができるすべてのブロックfs.chunksセットを見ることができます:

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

上記の例では、クエリがデータにmp3ファイルが40ブロックに格納されていることを意味する文書の40を返します。