mongodb $substr与$toInt函数解析身份证号提取出生年月日

文章讲述了如何在MongoDB数据库中,通过聚合函数和自定义JavaScript函数,从存储的18位身份证号码字段中解析并计算出学生的出生年月日。作者给出了两个示例,一个是使用聚合函数,另一个是利用$function来实现数据转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景

数据库中存的数据类型,不一定是前端需要的类型。比如,数据库中 学生collection(集合|表)

有身份证号码field(字段|列)为idCardNumber,为18位数字string

数据结构如下:

student:{
   
    name:"jacky",
    idCardNumber:"620102199503025028"
}

需求:计算出学生的出生年月日,

知道身份证的构成是

11-12 位表出生再哪 一年

11-12 位代表出生的月份

13-14 位代表初日的那天

所以就可以根据身份证的信息算出该学生的出生年月日,那么怎样是用mongodb查询实现呢

请参考以下查询方式

代码案例

案例一:mongodb的聚合函数计算出年月日

let aggregate=[
{
   
  payload:{
   $substr: ["$idCardNumber", 6, 8]},
  //$idCardNumber 含义是查询的字段,6代表的是从第几位开始截取 8,代表要截取几位
  brithYear:{
   
    $toInt:{
   
    //$toInt 是mongodb的类型转化工具
  		$substr:[{
   $substr: ["$idCardNumber", 6, 8]},0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值