2012-01-23 15 views
1

私は、MongoDBがファイルを格納するためにGridFSファイルシステムを使用していると言われています。しかし、シリアライズやベース64エンコーディングでデータベースのBSON構造体にファイルを格納する方法はありますか?MongoDBにファイルを保存するには?

ありがとう、ありがとうございます。

+0

ファイルをシリアル化しますか?どういう意味ですか? – milan

答えて

2

もちろん、ファイルを文字列としてシリアル化してドキュメントフィールドに格納することもできます。しかし、そのようなアプローチでは、1つの欠点があります - すべてのファイルは<、次に16MB(1つの文書のsize limit)でなければなりません。

MongoDBはMongoDBのコレクションの上に構築gridfs、および2つのコレクションが含まれます。

  1. ファイル - ファイルのメタデータ(名前、サイズ、ID、保存したいその他の情報)
  2. チャンクを - - ファイルのシリアライズされた本体を含むコレクション。ファイルのサイズが16MB以上であれば、mongodbは自動的に追加のチャンクを作成します。だから、どんなファイルもmongodbで1つのファイル文書と> = 1のチャンク文書として永続化されます。

hereファイルはmongodbのように見えます。

ファイルをmongodbに保存することを決めた場合は、一般的なテスト済みのコミュニティアプローチグリッドを使用することをお勧めします。

1

GridFSは通常のmongoコレクションの上にある薄いレイヤーなので、ファイルの内容( 'それ自身')となり、BSONとして保存されます。 GridFS(最終的にはBSON)はファイルをバイナリ形式で保存し、バイナリの内容を取得し、base64でエンコードしてバイナリ形式で保存したいとしますか?どうしてそうするか?

関連する問題