美文网首页
mongodb,批量更新 直接根据身份证号设置性别和年龄

mongodb,批量更新 直接根据身份证号设置性别和年龄

作者: 有点皮的小黄皮 | 来源:发表于2020-02-16 14:30 被阅读0次

db.getCollection('report').find({sex:{$exists:false}}).forEach(
   function(item){
       if(item.idcard){
           var idcard = item.idcard;
           var year = parseInt(idcard.substr(6, 4));
           var age = new Date().getFullYear() - year;
            // 计算性别
           var sex = parseInt(idcard.substr(16, 1));
           // 第17位数字表示性别:奇数表示男性,偶数表示女性
           if (sex % 2 == 0) {
               // 女
                sex = 2;
           } else {
               // 男
                sex = 1;
           }
           //NumberInt 为强制转换为整型,避免mongo自动转成duoble类型
           db.getCollection('report').update({"_id":item._id},{"$set":{"age":NumberInt(age),"sex":NumberInt(sex)}},false,true) 
       }
       
    }
)

相关文章

网友评论

      本文标题:mongodb,批量更新 直接根据身份证号设置性别和年龄

      本文链接:https://www.haomeiwen.com/subject/evipfhtx.html