Могу ли я пометить более одного поля как @indexed в одном документе в MongoDb? - PullRequest
0 голосов
/ 21 июня 2020

Я использую аннотацию @ indexed в моем документе для человека, использующего весеннюю загрузку и MongoDb.

Я уже пометил firstName , который будет использоваться для индексации .

Можно ли пометить и другие поля для индексации? Документ выглядит так, как указано ниже:

@Document
public class Person {
@Id private String id;
@Indexed(name = "first_name_index", direction = IndexDirection.DESCENDING)
private String firstName;
private String secondName;
private LocalDateTime dateOfBirth
}

Является ли хорошей практикой отмечать более одного поля как проиндексированные?

1 Ответ

1 голос
/ 21 июня 2020

Да. Вы можете проиндексировать несколько полей как @Indexed, если ваши запросы ортогональны.

  1. Вам необходимо поддерживать запросы findByFirstName и findByDateOfBirth.
  • you добавьте аннотацию @Indexed к firstName
  • вы добавите аннотацию @Indexed к dateOfBirth
Вам необходимо поддерживать запросы findByFirstName и findByFirstNameAndDateOfBirth.
  • вы добавляете @CompoundIndex(def = "{'findByFirstName': 1, 'dateOfBirth': 1}") к public class Person.
...