Skip to content

Commit 623c29b

Browse files
authored
update find to support nested fields (#354)
1 parent cdf3576 commit 623c29b

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

arango/utils.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,5 +120,9 @@ def build_filter_conditions(filters: Json) -> str:
120120
if not filters:
121121
return ""
122122

123-
conditions = [f"doc.`{k}` == {json.dumps(v)}" for k, v in filters.items()]
123+
conditions = []
124+
for k, v in filters.items():
125+
field = k if "." in k else f"`{k}`"
126+
conditions.append(f"doc.{field} == {json.dumps(v)}")
127+
124128
return "FILTER " + " AND ".join(conditions)

tests/test_document.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,6 +1241,10 @@ def test_document_find(col, bad_col, docs):
12411241
col.insert({"foo bar": "baz"})
12421242
assert len(list(col.find({"foo bar": "baz"}))) == 1
12431243

1244+
# Test find by nested attribute
1245+
col.insert({"foo": {"bar": "baz"}})
1246+
assert len(list(col.find({"foo.bar": "baz"}))) == 1
1247+
12441248

12451249
def test_document_find_near(col, bad_col, docs):
12461250
col.import_bulk(docs)

0 commit comments

Comments
 (0)