MongoRepository如何创建集合

问题描述

业务需求,需要根据某个字段值,假设值为 demo (该值是唯一的),去创建一个名为demo的collection。之后与demo相关的文档信息(结构是固定的),都将存储到这个集合中。

问题出现的环境背景及自己尝试过哪些方法

问题主要有:

  1. 如何使用MongoRepository去创建一个名为demo的集合?

  2. 如果创建了demo集合,但是因为这个集合的名称和结构都是在运行时才知道的,如何去做实体类映射保证后续的CRUD操作都可以正常运行?

有想过使用反射,但是反射只能创建类的对象,无法创建类,所以还是没有办法在运行时做到实体类去映射。而且就算可以,一旦服务器关闭,那么之前创建的所有实体类都将消失。


守着星空守着你
浏览 1266回答 2
2回答

PIPIONE

我进行了尝试,你可以这样试试看大致意思就是用List<T>控制问卷选择题和问答题的数量选择题和问答题的具体情况再分析,例如问卷号、选项、也是相同的思路List<String>//&nbsp;问卷实体类@Data@Document(collection&nbsp;=&nbsp;"t_question")public&nbsp;class&nbsp;Question&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;@Id &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;id;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;选择题 &nbsp;&nbsp;&nbsp;&nbsp;@Field &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;List<T>&nbsp;chooseList;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;简答题 &nbsp;&nbsp;&nbsp;&nbsp;@Field &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;List<T>&nbsp;saList;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;索引 &nbsp;&nbsp;&nbsp;&nbsp;@Field &nbsp;&nbsp;&nbsp;&nbsp;@Indexed(name&nbsp;=&nbsp;"index_question",&nbsp;direction&nbsp;=&nbsp;IndexDirection.DESCENDING)&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;index_question; }//&nbsp;DAO层public&nbsp;interface&nbsp;QuestionRepository&nbsp;extends&nbsp;MongoRepository<Question,String>&nbsp;{ }@Servicepublic&nbsp;class&nbsp;QuestionService&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;@Autowired &nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;QuestionRepository&nbsp;questionRepository;&nbsp;&nbsp;&nbsp;&nbsp;/** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;保存单份问卷 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;question&nbsp;Question实体类 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;保存结果 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Question&nbsp;savePaper(Question&nbsp;question){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;questionRepository.save(question); &nbsp;&nbsp;&nbsp;&nbsp;} }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB