加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

MongoDB实现问卷/考试设计

发布时间:2019-11-02 22:43:30 所属栏目:优化 来源:我的小熊不见了
导读:MongoDB的特点 MongoDB是一个面向文档存储的数据库。在MongoDB中,一条记录叫做document(文档),由类似于JSON结构的键值对组成。 由于类似于MongoDB直接存储JSON的特性,MongoDB天生适合作为存储结构复杂的数据结构的介质。类似于问卷调查和考试这种需求

dataId用于将这个问题同一个业务数据绑定,dataType用来标志这个业务数据的类型,这两个字段方便数据的扩展;dataTitle是业务数据的标题;options是这个问题的选项;analysis问题的解析,用于用户答题结束后的自查;right用来记录问题的正确与否。

新增问题

上层接口

提供新增问题的接口:

  1. @PostMapping("/saveOrUpdateQuestion")  
  2. public JsonData saveOrUpdateQuestion(@RequestBody Question data) {  
  3.     questionService.saveOrUpdateQuestion(data);  
  4.     return JsonData.success();  

QuestionService:

  1. public void saveOrUpdateQuestion(Question data) {  
  2.     if (StringUtils.isEmpty(data.getId())) {// 新增  
  3.         writer.insert(manager.getExamDataBase(), ExamConstant.QUESTION_COLLECT, data);  
  4.     } else {//修改  
  5.         writer.updateDocument(data, ExamConstant.QUESTION_COLLECT);  
  6.     }  

DAO

Writer:

  1. public void insert(String dataBase, String collect, MongoBean data) {  
  2.     if (data.getId() == null) {  
  3.         data.setId(BsonTool.uuid());  
  4.     }  
  5.     MongoCollection<Document> collection = getCollection(dataBase, collect);  
  6.     collection.insertOne(Document.parse(JSONObject.toJSONString(data))); 
  7. }  
  8. public Document updateDocument(MongoBean data, String questionCollect) {  
  9.     Document filter = new Document();  
  10.     filter.put("id", data.getId());  
  11.     Document res = new Document();  
  12.     res.put("$set", BsonDocument.parse(JSONObject.toJSONString(data)));  
  13.     update(manager.getExamDataBase(), questionCollect, filter, res);  
  14.     return res;  
  15. }  
  16. public boolean update(String dataBase, String collect, Bson filter, Bson update) {  
  17.     MongoCollection<Document> collection = getCollection(dataBase, collect);  
  18.     UpdateResult ur = collection.updateOne(filter, update);  
  19.     return ur.getModifiedCount() > 0;  

这样后端的工作就全部完成了,接下来就是前端怎么给后端提供这样的数据结构了。

前端实现数据结构

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读