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