I'm trying to return random element in Spring using Query.
I have this:
@Override
public List<AdventureHolidays> findRandomTrekking() {
    Query query = new Query();
    query.addCriteria(Criteria.where("typeOfAdventureHolidays").is("trekking"));
    return mongoTemplate.find(query, AdventureHolidays.class);
}
But this return me all elements that match my criteria,
I tried with:
return mongoTemplate.findOne(query, AdventureHolidays.class); but then I have required type List provided AdventureHoliday
Also I was using and tried with this, but on this way elements appear twice sometimes:
@Aggregation(pipeline = {"{'$match':{'typeOfAdventureHolidays':'trekking'}}", "{$sample: 
{size:1}}"})
So I find a way with this Query, but its listing me all documents while I want just one random from collection
 
    