Använd bara @Query
anteckning om den metoden.
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);
}
Genom att lägga till fields
del av @Query
anteckning, du säger åt Mongo att endast returnera den delen av dokumentet. Akta dig dock, det returnerar fortfarande hela dokumentet i samma format - det saknas bara allt du inte angav. Så din kod måste fortfarande returnera List<PracticeQuestion>
och du måste göra:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}