1. ホーム
  2. mongodb

[解決済み] オーバーフローソートステージのバッファリングデータ使用量が内部制限を超える

2023-04-15 04:04:51

質問

コードを使って

all_reviews = db_handle.find().sort('reviewDate', pymongo.ASCENDING)
print all_reviews.count()

print all_reviews[0]
print all_reviews[2000000]

カウントが表示される 2043484 と表示され all_reviews[0] .

しかし、印刷時に all_reviews[2000000] を印刷すると、エラーが発生します。

pymongo.errors.OperationFailure: データベースエラーです。ランナーエラーです。オーバーフロー ソートステージのバッファリングデータ使用量が33554495バイトで内部制限の33554432バイトを超えています。

どのように処理すればよいですか?

どのように解決するのですか?

インメモリソートで32MBの制限に引っかかっています。

https://docs.mongodb.com/manual/reference/limits/#Sort-Operations

ソートフィールドにインデックスを追加します。これにより、MongoDBはサーバー上ですべてのドキュメントをメモリにロードし、クライアントに送信する前にメモリ内でソートしようとするのではなく、ソートされた順序でドキュメントをストリームすることができます。