MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Frühlingsdaten - Mongodb - FindBy-Methode für verschachtelte Objekte

Verwenden Sie einfach die @Query Anmerkung zu dieser Methode.

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);

}

Durch Hinzufügen der fields Teil der @Query Anmerkung, weisen Sie Mongo an, nur diesen Teil des Dokuments zurückzugeben. Beachten Sie jedoch, dass das gesamte Dokument immer noch im selben Format zurückgegeben wird - es fehlt nur alles, was Sie nicht angegeben haben. Ihr Code muss also immer noch List<PracticeQuestion> zurückgeben und Sie müssen Folgendes tun:

foreach (PracticeQuestion pq : practiceQuestions) {
    Question q = pq.getQuestions().get(0); // This should be your question.
}