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)
}
}
)