Skip to content

pymongo.errors.OperationFailure: invalid argument in geo near query: minDistance #1281

@bigoper

Description

@bigoper

Executing the following GET request fails:
?where={"PostalCode":"33020","geo_location": {"$near": {"$geometry": {"type": "Point" ,"coordinates": [ -80.114494 , 26.48301 ]},"$maxDistance": 16000,"$minDistance": 1}}}&sort=-MatrixModifiedDT&max_results=20

-- it works when I execute the equivalent command in MongoDB

Expected Behavior

I'm expecting to get a list of document matching my query. Documents that their geo_location coordinates are within the radius

{

    "_error": {
        "code": 400,
        "message": "Query contains unknown or unsupported operators: $minDistance"
    },
    "_status": "ERR"

}

Actual Behavior

Tell us what happens instead.

Traceback (most recent call last):
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/gunicorn/workers/sync.py", line 135, in handle
    self.handle_request(listener, req, client, addr)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/gunicorn/workers/sync.py", line 176, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/flaskapp.py", line 1043, in __call__
    return super(Eve, self).__call__(environ, start_response)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 2309, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 2295, in wsgi_app
    response = self.handle_exception(e)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 1741, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/endpoints.py", line 56, in collections_endpoint
    response = get(resource, lookup)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/methods/common.py", line 297, in rate_limited
    return f(*args, **kwargs)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/auth.py", line 78, in decorated
    return f(*args, **kwargs)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/methods/common.py", line 1181, in decorated
    r = f(resource, **combined_args)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/methods/get.py", line 39, in get
    return get_internal(resource, **lookup)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/methods/get.py", line 112, in get_internal
    return _perform_find(resource, lookup)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/eve/methods/get.py", line 206, in _perform_find
    for document in cursor:
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/pymongo/cursor.py", line 1169, in next
    if len(self.__data) or self._refresh():
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/pymongo/cursor.py", line 1085, in _refresh
    self.__send_message(q)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/pymongo/cursor.py", line 975, in __send_message
    helpers._check_command_response(first)
  File "/usr/venvs/venv_idx20/lib/python3.5/site-packages/pymongo/helpers.py", line 145, in _check_command_response
    raise OperationFailure(msg % errmsg, code, response)
pymongo.errors.OperationFailure: invalid argument in geo near query: minDistance

Environment

  • Python version: Python 3.5.2
  • Eve version: 0.8

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions