CountryMongoRepositoryImpl.java
package cl.restapi.retrievecountriesapi.repositories;
import cl.restapi.retrievecountriesapi.models.Country;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import java.util.List;
public class CountryMongoRepositoryImpl implements CountryMongoRepository {
private static final String CITIES = "cities";
private final MongoTemplate mongoTemplate;
public CountryMongoRepositoryImpl(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
@Override
public List<Country> findAllExcludeCities() {
Query query = new Query();
query.fields().exclude(CITIES);
return mongoTemplate.find(query, Country.class);
}
@Override
public List<Country> findCountriesRegionExcludeCities(String region) {
Query query = new Query();
region = region.trim().toLowerCase();
query.addCriteria(Criteria.where("region").regex(region, "i"));
query.fields().exclude(CITIES);
return mongoTemplate.find(query, Country.class);
}
@Override
public List<Country> findCountriesSubregionExcludeCities(String subregion) {
Query query = new Query();
subregion = subregion.trim().toLowerCase();
query.addCriteria(Criteria.where("subregion").regex(subregion, "i"));
query.fields().exclude(CITIES);
return mongoTemplate.find(query, Country.class);
}
}