MongoDB チュートリアルlogin
MongoDB チュートリアル
著者:php.cn  更新時間:2022-04-21 17:49:03

MongoDB GridFS


GridFS は、16M (BSON ファイル制限) を超えるファイル (写真、オーディオ、ビデオなど) を保存および復元するために使用されます。

GridFS もファイル ストレージの方法ですが、MonoDB コレクションに保存されます。

GridFS は 16M を超えるファイルをより適切に保存できます。

GridFS は、大きなファイル オブジェクトを複数の小さなチャンク (ファイル フラグメント) に分割し、通常、各チャンクは MongoDB のドキュメントとしてチャンク コレクションに保存されます。


GridFS は、fs.files と fs.chunks の 2 つのコレクションを使用してファイルを保存します。

各ファイルの実際のコンテンツはチャンク (バイナリ データ) に保存され、ファイルに関連するメタデータ (filename、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 にファイルを追加する

次に、GridFS の put コマンドを使用して mp3 ファイルを保存します。 MongoDB インストール ディレクトリの bin にある mongofiles.exe ツールを呼び出します。

コマンド プロンプトを開き、MongoDB インストール ディレクトリの bin ディレクトリに移動し、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 内のすべてのチャンクを確認できます。以下では、ファイルの _id 値を取得します。この _id に基づいてチャンク データを取得できます。

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

上記の例では、クエリは 40 個のドキュメントのデータを返しました。これは、mp3 ファイルが 40 個のドキュメントに保存されていることを意味します。塊。

PHP中国語ウェブサイト