MongoDB - Могу ли я использовать @TextIndexed и @Indexed на поле одновременно? - PullRequest
0 голосов
/ 19 февраля 2020

Возможно ли иметь индекс и текстовый индекс для одного и того же столбца в MongoDB?

Я хочу запросить Question сбор по коду страны (т. Е. "США") и развернуть связанные данные в Country сбор по коду страны в виде идентификатора.

Пример кода для Spring Data MongoDB / Kotlin:

@Document
data class Question(
    @Id val id: String,

    @TextIndexed
    @Indexed(name = "question_country_code_index")
    val countryCode: String
)

1 Ответ

0 голосов
/ 19 февраля 2020

Можно применить обе аннотации к одному и тому же свойству. IndexResolver создаст два индекса.

{
    "v" : 2,
    "key" : {
        "_fts" : "text",
        "_ftsx" : 1
    },
    "name" : "Question_TextIndex",
    "ns" : "db.question",
    "weights" : {
        "textIndexedPropertyWithDefaultWeight" : 1
    },
    "language_override" : "language",
    "textIndexVersion" : 3
},
{
    "v" : 2,
    "key" : {
        "countryCode" : 1
    },
    "name" : "question_country_code_index",
    "ns" : "db.question",
    "collation" : {
        ...
    }
}
...