Mongodb-gridfs
MongoDB-GridFS
GridFSはファイルをチャンクに分割し、各データのチャンクをそれぞれ最大サイズ255kの個別のドキュメントに保存します。
GridFSは、デフォルトで2つのコレクション fs.files および fs.chunks を使用して、ファイルのメタデータとチャンクを保存します。 各チャンクは、一意の_id ObjectIdフィールドによって識別されます。 fs.filesは親ドキュメントとして機能します。 fs.chunksドキュメントの files_id フィールドは、チャンクをその親にリンクします。
以下は、fs.filesコレクションのサンプル文書です-
ドキュメントは、ファイル名、チャンクサイズ、アップロード日、および長さを指定します。
以下は、fs.chunksドキュメントのサンプルドキュメントです-
GridFSへのファイルの追加
次に、 put コマンドを使用して、GridFSを使用してmp3ファイルを保存します。 これには、MongoDBインストールフォルダーのbinフォルダーにある mongofiles.exe ユーティリティを使用します。
コマンドプロンプトを開き、MongoDBインストールフォルダのbinフォルダにあるmongofiles.exeに移動し、次のコードを入力します-
ここで、 gridfs は、ファイルが保存されるデータベースの名前です。 データベースが存在しない場合、MongoDBはその場で自動的に新しいドキュメントを作成します。 Song.mp3は、アップロードされたファイルの名前です。 データベース内のファイルのドキュメントを表示するには、検索クエリを使用することができます-
上記のコマンドは、次のドキュメントを返しました-
また、以前のクエリで返されたドキュメントIDを使用して、次のコードで保存されたファイルに関連するfs.chunksコレクションに存在するすべてのチャンクを見ることができます-
私の場合、クエリは40個のドキュメントを返しました。つまり、mp3ドキュメント全体が40のデータチャンクに分割されました。