@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.
}