mongodb新增数据时字段类型处理

前言

从mysql 获得数据用List<JSONObject>接收数据,新增mongodb之后如何保证字段类型与数据库类型保持一致。用List<JSONObject>接收是因为 该表是动态维护,表字段可以随时更改。

  • 分析
    1.获得该表所有的字段与字段类型放入List<JSONObject>
    2.新建一个枚举类 让mysql 的字段类型与mongodb字段类型做个映射
    3.判断该字段转成什么类型

  • 代码实现
    1.获得表字段与字段类型

    @Override
    public List<JSONObject> getCloumnInfors(Long conditionsId, String tabeName) {
        List<JSONObject> cloumnInfors = new ArrayList<>();
        // 获取目标表的字段与字段类型
        List<JSONObject> targetCloumsInfors = strategyConditionsService.getTargetCloumnAndType(conditionsId);
        // 获取展示字段
        List<StrategyConditionsCloumn> conditionsCloumns = (List<StrategyConditionsCloumn>) findShowCloums(conditionsId).getData();
        conditionsCloumns.stream().forEach(item -> {
            JSONObject jsonObject = new JSONObject();
            if (Integer.valueOf(BigDecimal.ZERO.intValue()).equals(item.getIsCustom())) {
                Optional<JSONObject> optional = targetCloumsInfors.stream().filter(v -> item.getTargetCloumn().equals(v.get(TowerConstant.COLUMN_NAME))).findFirst();
                if (optional.isPresent()) {
 					// mysql 字段               
                    jsonObject.putOpt(TowerConstant.TARGET_COLUMN,optional.get().get(TowerConstant.COLUMN_NAME));
                    // mysql字段类型
                    jsonObject.putOpt(TowerConstant.TARGET_COLUMN_TYPE,optional.get().get(TowerConstant.CLOUMN_TYPE));
                    // 前端展示的字段(别名)
                    jsonObject.putOpt(TowerConstant.SHOW_CLOUMN,item.getResourceCloumn());
                    // 前端展示的字段类型
                    jsonObject.putOpt(TowerConstant.CLOUMN_TYPE,item.getType());
                }
            } else {
                jsonObject.putOpt(TowerConstant.TARGET_COLUMN,item.getResourceCloumn());
                jsonObject.putOpt(TowerConstant.TARGET_COLUMN_TYPE,item.getType());
                jsonObject.putOpt(TowerConstant.SHOW_CLOUMN,item.getResourceCloumn());
                jsonObject.putOpt(TowerConstant.CLOUMN_TYPE,item.getType());
            }
            cloumnInfors.add(jsonObject);
        });
        return cloumnInfors;
    }

版权声明:本文为qq_42945407原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。