MongoRepository如何创建集合

发布于 2022-09-11 18:04:10 字数 445 浏览 19 评论 0

问题描述

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

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

问题主要有:

  1. 如何使用MongoRepository去创建一个名为demo的集合?
  2. 如果创建了demo集合,但是因为这个集合的名称和结构都是在运行时才知道的,如何去做实体类映射保证后续的CRUD操作都可以正常运行?
有想过使用反射,但是反射只能创建类的对象,无法创建类,所以还是没有办法在运行时做到实体类去映射。而且就算可以,一旦服务器关闭,那么之前创建的所有实体类都将消失。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静待花开 2022-09-18 18:04:10

创建demo集合,我理解为创建一个demo的对象?如果是这样的话使用

- MongoRepository<demo,String>的方式进行对象的操作,即可进行CRUD

#补充
我进行了尝试,你可以这样试试看
大致意思就是用List<T>控制问卷选择题和问答题的数量
选择题和问答题的具体情况再分析,例如问卷号、选项、也是相同的思路List<String>

// 问卷实体类
@Data
@Document(collection = "t_question")
public class Question {
    @Id
    private String id;
    // 选择题
    @Field
    private List<T> chooseList;

    // 简答题
    @Field
    private List<T> saList;

    // 索引
    @Field
    @Indexed(name = "index_question", direction = IndexDirection.DESCENDING)
    private String index_question;
}
// DAO层
public interface QuestionRepository extends MongoRepository<Question,String> {
}
@Service
public class QuestionService {
    @Autowired
    private QuestionRepository questionRepository;

    /**
     * 保存单份问卷
     * @param question Question实体类
     * @return 保存结果
     */
    public Question savePaper(Question question){
        return questionRepository.save(question);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文