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

2020-02-16  本文已影响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) 
       }
       
    }
)
上一篇 下一篇

猜你喜欢

热点阅读