Fix for PyMongo3+
This commit is contained in:
parent
40f6df7160
commit
9063b559c4
@ -7,6 +7,7 @@ from mongoengine.base.fields import UPDATE_OPERATORS
|
|||||||
from mongoengine.connection import get_connection
|
from mongoengine.connection import get_connection
|
||||||
from mongoengine.common import _import_class
|
from mongoengine.common import _import_class
|
||||||
from mongoengine.errors import InvalidQueryError
|
from mongoengine.errors import InvalidQueryError
|
||||||
|
from mongoengine.python_support import IS_PYMONGO_3
|
||||||
|
|
||||||
__all__ = ('query', 'update')
|
__all__ = ('query', 'update')
|
||||||
|
|
||||||
@ -135,11 +136,12 @@ def query(_doc_cls=None, _field_operation=False, **query):
|
|||||||
if k == '$maxDistance' or k == '$minDistance':
|
if k == '$maxDistance' or k == '$minDistance':
|
||||||
continue
|
continue
|
||||||
value_son[k] = v
|
value_son[k] = v
|
||||||
# seems only required for 2.6=<MongoDB<3
|
# Required for MongoDB >= 2.6, may fail when combining
|
||||||
|
# PyMongo 3+ and MongoDB < 2.6
|
||||||
near_embedded = False
|
near_embedded = False
|
||||||
for near_op in ('$near', '$nearSphere'):
|
for near_op in ('$near', '$nearSphere'):
|
||||||
if isinstance(value_dict.get(near_op), dict) and \
|
if isinstance(value_dict.get(near_op), dict) and (
|
||||||
get_connection().max_wire_version > 1:
|
IS_PYMONGO_3 or get_connection().max_wire_version > 1):
|
||||||
value_son[near_op] = SON(value_son[near_op])
|
value_son[near_op] = SON(value_son[near_op])
|
||||||
if '$maxDistance' in value_dict:
|
if '$maxDistance' in value_dict:
|
||||||
value_son[near_op][
|
value_son[near_op][
|
||||||
|
Loading…
x
Reference in New Issue
Block a user