sql >> Databasteknik >  >> NoSQL >> MongoDB

fjäderdata - Mongodb - findBy Method för kapslade objekt

Använd bara @Query anteckning om den metoden.

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

}

Genom att lägga till fields del av @Query anteckning, du säger åt Mongo att endast returnera den delen av dokumentet. Akta dig dock, det returnerar fortfarande hela dokumentet i samma format - det saknas bara allt du inte angav. Så din kod måste fortfarande returnera List<PracticeQuestion> och du måste göra:

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


  1. MongoDB - Skillnad mellan index på textfält och textindex?

  2. Installera Apache CouchDB på CentOS 7

  3. Ansluter MongoDB till Ruby med självsignerade certifikat för SSL

  4. Stora dataarbetsflöden med pandor