1

私はGridFSがMongoDBでどのように機能するか完全にはわかりません。私が現在見ているすべての例は、ファイルを取得し、APIを介してデータベースにアップロードすることだけを含みますが、知りたいです

a)通常のJSONスタイルのドキュメントに大きなファイルを埋め込むことができますか、それとも独自の特別なGridFSコレクションまたはデータベースに保存する必要がありますか?

b)いくつかの典型的なフィールド、文字列intなどが含まれているが、小さなtxtファイルからかなり大きなビデオファイルまでの添付ファイルのコレクションもあるオブジェクトがある場合、このタイプの状況をどのように処理できますか?

例えば

class bug
{
    public int Id { get; protected set; }
    public string Name { get; protected set; }
    public string Description { get; protected set; }
    public string StackTrace { get; protected set; }
    public List<File> Attachments { get; protected set; } //pictures/videos of the bug in action or text files with user config data in it etc.
}
4

1 に答える 1

2

a) 通常の JSON スタイルのドキュメントに大きなファイルを埋め込むことはできますか、それとも独自の特別な GridFS コレクションまたはデータベースに格納する必要がありますか?

ファイル サイズが 16 MB の mongodb ドキュメント サイズ制限を超えない場合に備えて、可能です。ただし、シリアル化/逆シリアル化が必要で、別の追加作業を自分で行う必要があります。

b) オブジェクトにいくつかの典型的なフィールド、文字列 int などがあるが、小さな txt ファイルからかなり大きなビデオ ファイルまで、さまざまな添付ファイルのコレクションがある場合、このような状況にどのように対処できますか?

最終的に添付ファイルを mongodb に保存することにした場合は、gridfs を使用することをお勧めします。ファイルをgridfsに単純に保存できますが、Attachmentsコレクションには、このファイルのIDとメタデータ(ファイル名、サイズなど)を保存します。次に、内部の Attachments コレクションから ID でファイル コンテンツを簡単に取得できます。

Mongodb gridf は mongodb の上の単純なレイヤーであり、大きなファイルをチャンクに分割して mongodb に保存し、チャンクからファイルを読み戻すこともできます。c# と gridfs を使い始めるには、この回答をお読みください。

于 2012-08-28T09:25:56.187 に答える