2016-11-25 6 views
-1

Pymongoでレコードを並べ替えるとバッファオーバーフローが発生する。私は、時間によって特定の場所にしか満たされていないレコードをソートしたい1。しかし、私はオーバーフローしました。Pymongoでレコードを並べ替えるとバッファオーバーフローが発生する

>>> records = db['LOG'].find({"location":"172.27.112.18"}).sort('time1', 1) 
>>> for i in records: 
...  nill.append(i) 
... 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib64/python2.7/site-packages/pymongo/cursor.py", line 1090, in next 
    if len(self.__data) or self._refresh(): 
    File "/usr/lib64/python2.7/site-packages/pymongo/cursor.py", line 1012, in _refresh 
    self.__read_concern)) 
    File "/usr/lib64/python2.7/site-packages/pymongo/cursor.py", line 903, in __send_message 
    codec_options=self.__codec_options) 
    File "/usr/lib64/python2.7/site-packages/pymongo/helpers.py", line 137, in _unpack_response 
    error_object) 
pymongo.errors.OperationFailure: database error: Plan executor error during find: Overflow sort stage buffered data usage of 33554525 bytes exceeds internal limit of 33554432 bytes 

答えて

0

インデックスが存在しないフィールドでソートしています。

db.LOG.create_index([('time1', 1)]) 
:〜32メガバイト の限界が存在する。この場合、 問題はとして「時間1」にインデックスを作成解決するには を( sort operations hereを参照してください)