Skip to content

Commit 9d7a737

Browse files
committed
Add support for arrayfield in SearchIndex.
1 parent e1b336a commit 9d7a737

File tree

3 files changed

+5
-0
lines changed

3 files changed

+5
-0
lines changed

django_mongodb_backend/indexes.py

+2
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ def search_index_data_types(self, db_type):
138138
return "boolean"
139139
if db_type == "object":
140140
return "document"
141+
if db_type == "array":
142+
return "embeddedDocuments"
141143
return db_type
142144

143145
def get_pymongo_index_model(

tests/indexes_/models.py

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class Article(models.Model):
1414
number = models.IntegerField()
1515
body = models.TextField()
1616
data = models.JSONField()
17+
genres = ArrayField(models.CharField(max_length=30))
1718
embedded = EmbeddedModelField(Data)
1819
created_at = models.DateTimeField(auto_now=True)
1920
description_semantic = ArrayField(models.IntegerField(), size=10)

tests/indexes_/test_search_indexes.py

+2
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ def test_multiple_fields(self):
102102
"embedded",
103103
"created_at",
104104
"object_id",
105+
"genres",
105106
],
106107
)
107108
editor.add_index(index=index, model=Article)
@@ -134,6 +135,7 @@ def test_multiple_fields(self):
134135
"type": "number",
135136
},
136137
"object_id": {"type": "objectId"},
138+
"genres": {"dynamic": False, "fields": {}, "type": "embeddedDocuments"},
137139
},
138140
}
139141
self.assertCountEqual(index_info[index.name]["columns"], index.fields)

0 commit comments

Comments
 (0)