因为有个功能是要求用户id 电话号 信箱 第三方id 唯一,用的数据库是mongodb ,做好唯一部分索引后发现,如果form的字段未编辑 还是会存入"",下一次提交后,字段一样会因为""重复,达到不了预期。
想法是:1.用户id 作为唯一索引,其他字段不做,存入数据库前,在实现层,电话号 信箱 第三方id先进行查询,查询的结果是list,如果list.length==0 才可以继续下一步操作,这样dao层就会多出对应的三个方法,分别查这三个字段,可以解决""问题。
2.在控制层进行过滤,把不要的字段进行删除,数据库就不会有该字段,这种想法更符合逻辑,没有就是null,而且少了很多判断
exec1(from,dest){
for(let key in dest){
if(!StringUtil.isEmpty(from[key])){
dest[key] = from[key]
}else {
delete dest[key]
}
}
return dest;
}
form 是request.body,dest是实体类方法
结果是前台不编辑的值,数据库就没有该字段。