Po prostu użyj @Query
adnotacja na temat tej metody.
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);
}
Dodając fields
część @Query
adnotacja, mówisz Mongo, aby zwrócił tylko tę część dokumentu. Uważaj jednak, nadal zwraca cały dokument w tym samym formacie - po prostu brakuje wszystkiego, czego nie określiłeś. Więc twój kod nadal będzie musiał zwracać List<PracticeQuestion>
i będziesz musiał zrobić:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}