Skip to content

Commit fd07dd4

Browse files
committed
Add as_mql method to OrderBy
1 parent c7c9264 commit fd07dd4

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

django_mongodb/compiler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,10 +469,10 @@ def _get_ordering(self):
469469
idx = itertools.count(start=1)
470470
for order in self.order_by_objs or []:
471471
if isinstance(order.expression, Col):
472-
field_name = order.expression.as_mql(self, self.connection).removeprefix("$")
472+
field_name = order.as_mql(self, self.connection).removeprefix("$")
473473
fields.append((order.expression.target.column, order.expression))
474474
elif isinstance(order.expression, Ref):
475-
field_name = order.expression.as_mql(self, self.connection).removeprefix("$")
475+
field_name = order.as_mql(self, self.connection).removeprefix("$")
476476
else:
477477
field_name = f"__order{next(idx)}"
478478
fields.append((field_name, order.expression))

django_mongodb/query.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from django.core.exceptions import EmptyResultSet, FullResultSet
55
from django.db import DatabaseError, IntegrityError
6-
from django.db.models.expressions import Case, When
6+
from django.db.models.expressions import Case, OrderBy, When
77
from django.db.models.functions import Mod
88
from django.db.models.lookups import Exact
99
from django.db.models.sql.constants import INNER
@@ -166,6 +166,10 @@ def join(self, compiler, connection):
166166
return lookup_pipeline
167167

168168

169+
def order_by(self, compiler, connection):
170+
return self.expression.as_mql(compiler, connection)
171+
172+
169173
def where_node(self, compiler, connection):
170174
if self.connector == AND:
171175
full_needed, empty_needed = len(self.children), 1
@@ -231,4 +235,5 @@ def where_node(self, compiler, connection):
231235
def register_nodes():
232236
Join.as_mql = join
233237
NothingNode.as_mql = NothingNode.as_sql
238+
OrderBy.as_mql = order_by
234239
WhereNode.as_mql = where_node

0 commit comments

Comments
 (0)