@@ -110,8 +110,13 @@ def negated_expression(self, compiler, connection):
110110 return {"$not" : expression_wrapper (self , compiler , connection )}
111111
112112
113- def order_by (self , compiler , connection ):
114- return self .expression .as_mql (compiler , connection , as_expr = True )
113+ def order_by (self , compiler , connection , as_expr = False ):
114+ return self .expression .as_mql (compiler , connection , as_expr = as_expr )
115+
116+
117+ @property
118+ def order_by_can_use_path (self ):
119+ return self .expression .is_simple_column
115120
116121
117122def query (self , compiler , connection , get_wrapping_pipeline = None , as_expr = False ):
@@ -180,11 +185,6 @@ def ref(self, compiler, connection, as_expr=False): # noqa: ARG001
180185 return f"{ prefix } { refs } "
181186
182187
183- @property
184- def ref_is_simple_column (self ):
185- return self .source .is_simple_column
186-
187-
188188def star (self , compiler , connection ): # noqa: ARG001
189189 return {"$literal" : True }
190190
@@ -245,11 +245,13 @@ def register_expressions():
245245 ExpressionList .as_mql = process_lhs
246246 ExpressionWrapper .as_mql_expr = expression_wrapper
247247 NegatedExpression .as_mql_expr = negated_expression
248- OrderBy .as_mql_expr = order_by
248+ OrderBy .as_mql_expr = partialmethod (order_by , as_expr = True )
249+ OrderBy .as_mql_path = partialmethod (order_by , as_expr = False )
250+ OrderBy .can_use_path = order_by_can_use_path
249251 Query .as_mql = query
250252 RawSQL .as_mql = raw_sql
251253 Ref .as_mql = ref
252- Ref .is_simple_column = ref_is_simple_column
254+ Ref .is_simple_column = True
253255 ResolvedOuterRef .as_mql = ResolvedOuterRef .as_sql
254256 Star .as_mql_expr = star
255257 Subquery .as_mql_expr = partialmethod (subquery , as_expr = True )
0 commit comments