Java Spring MongoDB @TextIndexed аннотация не создает индекс в существующей базе данных - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть коллекция в MongoDB, и я пытаюсь сгенерировать текстовые индексы, используя аннотации Spring (@TextIndexed). Я не создаю базу данных при запуске приложения, она уже создана.

Проблема в том, что индексы не добавляются в мою базу данных.

Работает ли аннотация только при создании базы данных после запуска приложения?

Спасибо.

Spring v. 4.3.2 MongoDB v. 4.0.1

1 Ответ

0 голосов
/ 03 сентября 2018

" Работает ли аннотация только при создании базы данных после запуска приложения "?

Ответ - да.

Если коллекция уже создана, данные Spring не инициализируют индексы. Мне нужно было сделать то, что вы хотите, и единственное решение, которое я нашел, было сделать это с помощью экземпляра MongoOperations.

  @Autowired
  private MongoOperations mongoOps;

  @PostConstruct
  public void initializeIndexesInDb(){
    mongoOps.indexOps(YourDocumentClass.class).ensureIndex(new Index().on("fieldName", Direction.ASC));
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...