Pymongo NotMasterError при извлечении счетчика коллекции согласно запросу из MongoDB в DRF - PullRequest
0 голосов
/ 09 ноября 2018

Я работаю над REST API в DjangoRestFramework и использую pymongo для MongoDB. Запрос будет выглядеть как показано ниже.

query = {'source_id': {'$in': ['16']}, 'whatsapp': '1', 'clicker': '1'}  
mobile_obj_count = upload.objects.mongo_find ( query ).count ()  

MongoDB имеет 6 миллионов данных. И здесь счет будет 100 000.

Для этого кода я получаю NotMasterError.

Ошибка прилагается ниже:

request data {'circle': [], 'operator': [], 'source_id': [16], 'whatsapp': '1', 'clicker'                                                                               : '1'}
query is {'source_id': {'$in': ['16']}, 'whatsapp': '1', 'clicker': '1'}
Internal Server Error: /report_by_mobile_series_sms_count/
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py", line 3                                                                               4, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py", line 126, i                                                                               n _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py", line 124, i                                                                               n _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.6/dist-packages/django/views/decorators/csrf.py", line 54,                                                                                in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/django/views/generic/base.py", line 68, in                                                                                view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 483, in dis                                                                               patch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 443, in han                                                                               dle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.6/dist-packages/rest_framework/views.py", line 480, in dis                                                                               patch
    response = handler(request, *args, **kwargs)
  File "/var/www/html/tbl/views.py", line 1969, in post
    mobile_obj_count = upload.objects.mongo_find ( query ).count ()
  File "/usr/local/lib/python3.6/dist-packages/pymongo/cursor.py", line 769, in count
    cmd, self.__collation, session=self.__session)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 1572, in _cou                                                                               nt
    session=session)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/collection.py", line 244, in _comm                                                                               and
    retryable_write=retryable_write)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/pool.py", line 584, in command
    self._raise_connection_failure(error)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/pool.py", line 745, in _raise_conn                                                                               ection_failure
    raise error
  File "/usr/local/lib/python3.6/dist-packages/pymongo/pool.py", line 579, in command
    unacknowledged=unacknowledged)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/network.py", line 150, in command
    parse_write_concern_error=parse_write_concern_error)
  File "/usr/local/lib/python3.6/dist-packages/pymongo/helpers.py", line 132, in _check_c                                                                               ommand_response
    raise NotMasterError(errmsg, response)
pymongo.errors.NotMasterError: Exec error resulting in state DEAD :: caused by :: interru                                                                               pted at shutdown
...