Skip to content

Commit 8f9c340

Browse files
committed
Fix unit test
1 parent 918237a commit 8f9c340

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

django_mongodb_backend/fields/embedded_model.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,11 @@ def as_mql(self, compiler, connection):
186186
key_transforms.insert(0, previous.key_name)
187187
previous = previous.lhs
188188
mql = previous.as_mql(compiler, connection)
189+
# transform = ".".join(key_transforms)
189190
for key in key_transforms:
190191
mql = {"$getField": {"input": mql, "field": key}}
191192
return mql
193+
# return f"{mql}.{transform}"
192194

193195
@property
194196
def output_field(self):

django_mongodb_backend/fields/embedded_model_array.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,20 @@ def as_mql(self, compiler, connection):
7070
lhs_mql = process_lhs(self, compiler, connection)
7171
value = process_rhs(self, compiler, connection)
7272
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
7377
if isinstance(value, models.Model):
7478
value, emf_data = self.model_to_dict(value)
7579
# 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)})
7781
return {
7882
"$anyElementTrue": {
7983
"$ifNull": [
8084
{
8185
"$map": {
82-
"input": lhs_mql[0],
86+
"input": lhs_mql,
8387
"as": "item",
8488
"in": {"$and": conditions},
8589
}
@@ -93,9 +97,9 @@ def as_mql(self, compiler, connection):
9397
"$ifNull": [
9498
{
9599
"$map": {
96-
"input": lhs_mql[0],
100+
"input": lhs_mql,
97101
"as": "item",
98-
"in": {"$eq": [lhs_mql[1], value]},
102+
"in": {"$eq": [inner_lhs_mql, value]},
99103
}
100104
},
101105
[],
@@ -149,10 +153,7 @@ def get_transform(self, name):
149153
)
150154

151155
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)
156157
lhs_mql = process_lhs(self, compiler, connection)
157158
return lhs_mql, inner_lhs_mql
158159

0 commit comments

Comments
 (0)