Как генерировать индексы mongo с помощью MongoTemplate

#java #spring #mongodb #spring-data #spring-data-mongodb

#java #весна #mongodb #spring-данные #spring-data-mongodb

Вопрос:

Использование весенних данных mongodb

Есть класс для документа mongo

 @Document(collection = "Samples")
@CompoundIndexes({...})
public class Sample {
    @Id
    private String id;

    @Index(sparse=true)
    private String field1;

    @Index(unique=true)
    private String field2;
}
  

Нужен метод для удаления всех записей в коллекции. Для этого я использую

 mongoTemplate.dropCollection(Sample.class);
  

но в этом случае я теряю все индексы в этой коллекции. Поэтому мне нужно воссоздать все индексы заново.

Есть такой метод

 this.mongoTemplate.indexOps(Sample.class).ensureIndex(...);
  

Но мне нужно некоторое определение индекса в качестве параметра, чтобы использовать этот метод.

Есть ли какой-нибудь способ воссоздать все индексы документов, используя аннотации классов?

Комментарии:

1. this.mongoTempalte.remove(null, Sample.class); похоже на решение. Но… Я не уверен…

2. this.mongoTemplate.remove(new Query(), Sample.class); — это работает