sql >> Database >  >> NoSQL >> MongoDB

spring data - Mongodb - findBy Methode voor geneste objecten

Gebruik gewoon de @Query annotatie over die 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);

}

Door de fields . toe te voegen onderdeel van de @Query annotatie, vertelt u Mongo om alleen dat deel van het document terug te sturen. Pas echter op, het retourneert nog steeds het hele document in hetzelfde formaat - je mist gewoon alles wat je niet hebt gespecificeerd. Uw code moet dus nog steeds List<PracticeQuestion> . retourneren en je zult moeten doen:

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


  1. Kan vergrendelingsbestand niet maken/openen:/data/mongod.lock errno:13 Toestemming geweigerd

  2. nodejs, redis. controleer of sleutels bestaan ​​en maak nieuwe aan als dat niet het geval is

  3. Hoe maak je db (key_space) in redis

  4. Waarden zoeken met behulp van een gedeeltelijke sleutelnaam in een Redis-gesorteerde set