@@ -67,16 +67,20 @@ def as_mql(self, compiler, connection):
67
67
lhs_mql = process_lhs (self , compiler , connection )
68
68
value = process_rhs (self , compiler , connection )
69
69
if isinstance (self .lhs , Col | KeyTransform ):
70
+ if isinstance (self .lhs , Col ):
71
+ inner_lhs_mql = "$$item"
72
+ else :
73
+ lhs_mql , inner_lhs_mql = lhs_mql
70
74
if isinstance (value , models .Model ):
71
75
value , emf_data = self .model_to_dict (value )
72
76
# Get conditions for any nested EmbeddedModelFields.
73
- conditions = self .get_conditions ({lhs_mql [ 1 ] : (value , emf_data )})
77
+ conditions = self .get_conditions ({inner_lhs_mql : (value , emf_data )})
74
78
return {
75
79
"$anyElementTrue" : {
76
80
"$ifNull" : [
77
81
{
78
82
"$map" : {
79
- "input" : lhs_mql [ 0 ] ,
83
+ "input" : lhs_mql ,
80
84
"as" : "item" ,
81
85
"in" : {"$and" : conditions },
82
86
}
@@ -90,9 +94,9 @@ def as_mql(self, compiler, connection):
90
94
"$ifNull" : [
91
95
{
92
96
"$map" : {
93
- "input" : lhs_mql [ 0 ] ,
97
+ "input" : lhs_mql ,
94
98
"as" : "item" ,
95
- "in" : {"$eq" : [lhs_mql [ 1 ] , value ]},
99
+ "in" : {"$eq" : [inner_lhs_mql , value ]},
96
100
}
97
101
},
98
102
[],
@@ -146,10 +150,7 @@ def get_transform(self, name):
146
150
)
147
151
148
152
def as_mql (self , compiler , connection ):
149
- if isinstance (self ._lhs , Transform ):
150
- inner_lhs_mql = self ._lhs .as_mql (compiler , connection )
151
- else :
152
- inner_lhs_mql = None
153
+ inner_lhs_mql = self ._lhs .as_mql (compiler , connection )
153
154
lhs_mql = process_lhs (self , compiler , connection )
154
155
return lhs_mql , inner_lhs_mql
155
156
0 commit comments