Added support for querying by array position. Closes #36.

This commit is contained in:
Harry Marr
2010-08-31 00:24:30 +01:00
parent 1849f75ad0
commit 2af5f3c56e
2 changed files with 47 additions and 2 deletions

View File

@@ -344,6 +344,8 @@ class QuerySet(object):
mongo_query = {}
for key, value in query.items():
parts = key.split('__')
indices = [(i, p) for i, p in enumerate(parts) if p.isdigit()]
parts = [part for part in parts if not part.isdigit()]
# Check for an operator and transform to mongo-style if there is
op = None
if parts[-1] in operators + match_operators + geo_operators:
@@ -381,7 +383,9 @@ class QuerySet(object):
"been implemented" % op)
elif op not in match_operators:
value = {'$' + op: value}
for i, part in indices:
parts.insert(i, part)
key = '.'.join(parts)
if op is None or key not in mongo_query:
mongo_query[key] = value