" Работает ли аннотация только при создании базы данных после запуска приложения "?
Ответ - да.
Если коллекция уже создана, данные Spring не инициализируют индексы.
Мне нужно было сделать то, что вы хотите, и единственное решение, которое я нашел, было сделать это с помощью экземпляра MongoOperations.
@Autowired
private MongoOperations mongoOps;
@PostConstruct
public void initializeIndexesInDb(){
mongoOps.indexOps(YourDocumentClass.class).ensureIndex(new Index().on("fieldName", Direction.ASC));
}