0

mongofilesを介してGridFSにファイルを保存しています

$ mongofiles -d dba put file.txt
connected to: 127.0.0.1
added file: { _id: ObjectId('50c0a48f8d1d53325a7d7b01'), filename: "file.txt", chunkSize: 262144, uploadDate: new Date(1354802319244), md5: "a6039c33d297d12d0dfb9b1a99bda542", length: 3527 }
done!
$ mongofiles -d dba list
connected to: 127.0.0.1
file.txt    3527

Djangoとmongoengineのモデルがあります。これは次のように定義されています。

class IFile(Document):
    iptr = FileField(required=True)

IFileのインスタンス内にこのファイルをmongodbシェルから保存するにはどうすればよいですか?

db.ifile.save({"iptr" : ??})

ありがとう

4

1 に答える 1

2

内部的には、GridFSは2つのコレクションを使用してデータを格納します。

  • fs.filesには、オブジェクトのメタデータが含まれています
  • fs.chunksには、いくつかの追加のアカウンティング情報を含むバイナリチャンクが含まれています

ファイル

ファイルコレクション内のドキュメントには、次のフィールドが必要です。

{{
  "_id":、//このファイルの一意のID
  "length":data_number、//ファイルのサイズ(バイト単位)
  "chunkSize":data_number、//各チャンクのサイズ。デフォルトは256kです
  "uploadDate":data_date、//オブジェクトが最初に保存された日付
  "md5":data_string//このファイルのチャンクに対して"filemd5"コマンドを実行した結果
}

チャンク

チャンクコレクションのドキュメントの構造は次のとおりです。

{{
  "_id":、//_chunksコレクション内のチャンクのオブジェクトID
  "files_id":、//対応するファイルコレクションエントリの_id
  "n":chunk_number、//チャンクは0から順に番号が付けられます
  "data":data_binary、//BSONバイナリタイプとしてのチャンクのペイロード
}

詳細については、ここをクリックしてください。 関連するドライバーのドキュメント:Python

于 2012-12-09T16:12:46.023 に答える