MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

пролетни данни - Mongodb - метод findBy за вложени обекти

Просто използвайте @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 анотация, вие казвате на Mongo да върне само тази част от документа. Внимавайте обаче, той все още връща целия документ в същия формат - просто липсва всичко, което не сте посочили. Така че вашият код все пак ще трябва да върне List<PracticeQuestion> и ще трябва да направите:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преведете Queryable<T> обратно към IMongoQuery

  2. MongoDB:Какво е обединяване на връзки и изчакване?

  3. Справяне с промени в схемата в Mongoose

  4. Парола за MongoDB с @ в нея

  5. Съхранение на пароли с Node.js и MongoDB