2016-09-30 10 views
0

GridFSを使わずに通常のMongoDB文書にファイルを保存しています(ファイルはすべて16MBの制限よりも小さい)。端末のMongoDB BSON BinDataの出力を防止する

このアプローチをとってみると、たとえば端末でdb.collection.find操作を実行すると、バイナリデータ全体が出力されるという問題が発生しています。小さなファイルの場合は問題ありませんが、ファイルが8MBの場合、このバイナリファイルを端末に出力するのに約20秒かかります。

ターミナルにバイナリデータ全体を出力できないような方法はありますか?

文書は、大きく以下の構造を有する:

 
{ 
    _id: ObjectId 
    field1: string 
    field2: string 
    field3: string 
    attachment: { 
       filename: string 
       data: BinData 
       } 
} 

attachmentがない場合は、文書の外に残されます。

+0

あなたはまったくそれを望みませんか?バイナリデータ全体の代わりに何をしたいですか? –

+0

ドキュメントには添付ファイルがありますが、出力するのに20秒しかかからないため、すべてをコンソールに出力しないことを知りたいと思います。私は可能な解決策は、別のコレクションにバイナリデータを格納し、実際のドキュメントにそれへの参照を格納することだと思った... – Sjiep

答えて

1

照会でフィールドの添付ファイル$existsが検索されますが、結果からprojectionを使用してそのフィールドが除外されていることを確認しますか?

db.bindata.find({attachment:{$exists:true}}, {attachment:false}) 

もちろん、クエリを拡張することができます。あなたが追加の状態を維持していることを確認してください。

関連する問題