Cukup gunakan @Query
anotasi pada metode tersebut.
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);
}
Dengan menambahkan fields
bagian dari @Query
anotasi, Anda memberi tahu Mongo untuk hanya mengembalikan bagian dokumen itu. Namun berhati-hatilah, itu masih mengembalikan seluruh dokumen dalam format yang sama - hanya melewatkan semua yang tidak Anda tentukan. Jadi kode Anda masih harus mengembalikan List<PracticeQuestion>
dan Anda harus melakukan:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}