Просто използвайте @Query
анотация за този метод.
public interface CustomRepository extends MongoRepository<PracticeQuestion, String> {
@Query(value = "{ 'userId' : ?0, 'questions.questionID' : ?1 }", fields = "{ 'questions.questionID' : 1 }")
List<PracticeQuestion> findByUserIdAndQuestionsQuestionID(int userId, int questionID);
}
Чрез добавяне на fields
част от @Query
анотация, вие казвате на Mongo да върне само тази част от документа. Внимавайте обаче, той все още връща целия документ в същия формат - просто липсва всичко, което не сте посочили. Така че вашият код все пак ще трябва да върне List<PracticeQuestion>
и ще трябва да направите:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}