Chỉ cần sử dụng @Query
chú thích về phương pháp đó.
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);
}
Bằng cách thêm các trường fields
một phần của @Query
chú thích, bạn đang yêu cầu Mongo chỉ trả lại phần đó của tài liệu. Tuy nhiên, hãy cẩn thận, nó vẫn trả về toàn bộ tài liệu ở cùng một định dạng - chỉ thiếu mọi thứ bạn không chỉ định. Vì vậy, mã của bạn sẽ vẫn phải trả về List<PracticeQuestion>
và bạn sẽ phải làm:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}