Gebruik gewoon de @Query
annotatie over die methode.
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);
}
Door de fields
. toe te voegen onderdeel van de @Query
annotatie, vertelt u Mongo om alleen dat deel van het document terug te sturen. Pas echter op, het retourneert nog steeds het hele document in hetzelfde formaat - je mist gewoon alles wat je niet hebt gespecificeerd. Uw code moet dus nog steeds List<PracticeQuestion>
. retourneren en je zult moeten doen:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}