2016-04-28 24 views
0

mongodbで埋め込みドキュメントを参照するにはどうすればよいですか?
は私が質問AnswerOptions書類を持っていると私はUserAnswer文書へのユーザーの回答を保存したい、想像してみてください。
埋め込み型AnswerOptionsでこのオプションをどのように指すべきですか?
ベストプラクティス?SpringDataを使用してmongodbで埋め込みドキュメントを参照する方法

{ 
     "_id":"1" 
     "questionTitle":"Question1" 
     "answerOptions": 
     [ 
     { 
      "optionTitle":"option1" 
     }, 
     { 
      "optionTitle":"option2" 
     }, 
     { 
      "optionTitle":"option3" 
     } 
     ] 

    }, 
{ 
     "_id":"2" 
     "questionTitle":"Question2" 
     "answerOptions": 
     [ 
     { 
      "optionTitle":"option1" 
     }, 
     { 
      "optionTitle":"option2" 
     } 
     ] 

    }, 
{ 
     "_id":"3" 
     "questionTitle":"Question3" 
     "answerOptions": 
     [ 
     { 
      "optionTitle":"option1" 
     }, 
     { 
      "optionTitle":"option2" 
     }   
     ] 

    } 

答えて

1

私は私の道をベストプラクティスとして考えられているかどうかわからないが、これはイドそれ方法です:

public class Question { 
    private String id; 
    private String questionTitle; 
    private List<Answer> answerOptions; 
} 

public class Answer { 
    private String optionTitle; 
} 

は今、あなたは質問を照会するMongoRepositoryを定義することができます。

public interface QuestionRepository extends MongoRepository<Question,String> { 
    List<Question> findByAnswerOptionsOptionTitle(@Param("answerOptions.optionTitle") String option) 
} 

MongoRepositoriesのクエリに関するセクションも便利です: http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.query-methods.query-property-expressions