2017-10-14 5 views
0

私は次のようになります小説のコレクションを持っています。私は長い文章(100K言葉+)を追加しようとすると、私はエラーを取得する:MongoDBのドキュメントサイズ制限は

例外RangeError:私が集まっている

、外部のバッファ境界を書き込もうとするとは、BSON文書が16メガバイトよりも大きいことを意味しますしたがって制限を超える。

これは比較的一般的な状況です。この制限を回避する方法を検討しています。たとえば、小説を10k語のさまざまな塊に分割できます。つまり、ドキュメントが別のコレクション(つまり、アップロードされたテキストごとに1つの新しいコレクション)を構成する必要があることを意味します。これは私にはほとんど意味がありません。

この場合、MongoDBデータベースを設計するための標準的/推奨の方法はありますか?

また、JS/Nodeに文書を挿入する前にBSONのサイズを確認することはできますか?

答えて

0

書籍の内容をMongoDBに保存する必要はありますか?ユーザーにコンテンツを提供したり、バルクで処理しているだけの場合は、それらをディスクまたはAWS S3バケットなどに格納することをおすすめします。データベースに住んで書籍コンテンツが必要な場合は

、MongoDBのGridFSを使用してみてください:

GridFS is a specification for storing and retrieving files that exceed the BSON-document size limit of 16 MB.

Instead of storing a file in a single document, GridFS divides the file into parts, or chunks, and stores each chunk as a separate document

When you query GridFS for a file, the driver will reassemble the chunks as needed. You can perform range queries on files stored through GridFS. You can also access information from arbitrary sections of files, such as to “skip” to the middle of a video or audio file.

はこちら続きを読む: https://docs.mongodb.com/manual/core/gridfs/

関連する問題