English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
GridFSは、画像、オーディオファイル、ビデオファイルなどの大規模ファイルを保存および検索するためのMongoDBの規格です。ファイルシステムに似たファイルの保存方法ですが、データはMongoDBのコレクションに保存されます。GridFSは、ドキュメントのサイズ制限を超えるものも保存できます。16mb)のファイルです。
GridFSはファイルを複数のブロックに分割し、各データブロックを独立したドキュメントに保存します。ファイルの最大サイズは255k。
デフォルトでは、GridFSは2つのコレクションを使用します。fs.files
およびfs.chunks
ファイルのメタデータとブロックを保存します。各ブロックはユニークな_id ObjectIdフィールドで識別されます。fs.filesは親ドキュメントとして機能します。files_id
fs.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" }
今、以下を使用してput
コマンドを使用してGridFSにmpを保存3ファイルです。これには、以下を使用します。mongofiles.exe
MongoDBのインストールフォルダの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データブロック。