【问题标题】:How to reference an embedded document in mongodb using SpringData如何使用 Spring Data 在 mongodb 中引用嵌入文档
【发布时间】:2016-04-28 17:45:33
【问题描述】:

如何在 mongodb 中引用嵌入文档?
想象一下,我有一个 QuestionAnswerOptions 文档,我想将用户答案保存到 UserAnswer 文档。
现在,我应该如何在嵌入的 AnswerOptions 文档中指向该选项?
有什么最佳做法吗?

{
        "_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"
        }        
        ]

    }

【问题讨论】:

    标签: java mongodb spring-data mongodb-java


    【解决方案1】:

    我不知道我的方式是否被认为是最佳实践,但这就是 Ido it:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 2016-09-16
      • 2016-10-05
      • 1970-01-01
      相关资源
      最近更新 更多