बस @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
. का हिस्सा एनोटेशन, आप मोंगो को केवल दस्तावेज़ के उस हिस्से को वापस करने के लिए कह रहे हैं। हालांकि सावधान रहें, यह अभी भी पूरे दस्तावेज़ को उसी प्रारूप में लौटाता है - बस वह सब कुछ गायब है जो आपने निर्दिष्ट नहीं किया था। तो आपके कोड को अभी भी List<PracticeQuestion>
. वापस करना होगा और आपको करना होगा:
foreach (PracticeQuestion pq : practiceQuestions) {
Question q = pq.getQuestions().get(0); // This should be your question.
}