@@ -59,16 +59,20 @@ def as_mql(self, compiler, connection):
59
59
lhs_mql = process_lhs (self , compiler , connection )
60
60
value = process_rhs (self , compiler , connection )
61
61
if isinstance (self .lhs , Col | KeyTransform ):
62
+ if isinstance (self .lhs , Col ):
63
+ inner_lhs_mql = "$$item"
64
+ else :
65
+ lhs_mql , inner_lhs_mql = lhs_mql
62
66
if isinstance (value , models .Model ):
63
67
value , emf_data = self .model_to_dict (value )
64
68
# Get conditions for any nested EmbeddedModelFields.
65
- conditions = self .get_conditions ({lhs_mql [ 1 ] : (value , emf_data )})
69
+ conditions = self .get_conditions ({inner_lhs_mql : (value , emf_data )})
66
70
return {
67
71
"$anyElementTrue" : {
68
72
"$ifNull" : [
69
73
{
70
74
"$map" : {
71
- "input" : lhs_mql [ 0 ] ,
75
+ "input" : lhs_mql ,
72
76
"as" : "item" ,
73
77
"in" : {"$and" : conditions },
74
78
}
@@ -82,9 +86,9 @@ def as_mql(self, compiler, connection):
82
86
"$ifNull" : [
83
87
{
84
88
"$map" : {
85
- "input" : lhs_mql [ 0 ] ,
89
+ "input" : lhs_mql ,
86
90
"as" : "item" ,
87
- "in" : {"$eq" : [lhs_mql [ 1 ] , value ]},
91
+ "in" : {"$eq" : [inner_lhs_mql , value ]},
88
92
}
89
93
},
90
94
[],
@@ -138,10 +142,7 @@ def get_transform(self, name):
138
142
)
139
143
140
144
def as_mql (self , compiler , connection ):
141
- if isinstance (self ._lhs , Transform ):
142
- inner_lhs_mql = self ._lhs .as_mql (compiler , connection )
143
- else :
144
- inner_lhs_mql = None
145
+ inner_lhs_mql = self ._lhs .as_mql (compiler , connection )
145
146
lhs_mql = process_lhs (self , compiler , connection )
146
147
return lhs_mql , inner_lhs_mql
147
148
0 commit comments