美文网首页
mongodb数据类型查看及修改笔记!

mongodb数据类型查看及修改笔记!

作者: DragonersLi | 来源:发表于2021-09-29 16:18 被阅读0次

mongodb查询时严格区分类型,如果类型不正确,则查询不出数据
#sum统计求和一直为0,原来是字段类型为string,所以一直是0.更改字段类型为double

#查询递归上级ID数组某个字段
> db.team_award.find({"pid.id":"13457"});#加引号为string类型
> db.team_award.find({"pid.id":13457}); #该字段值为数字  

> db.team_award.aggregate([{$group : {_id : null, total: {$sum : "$money"}}}]) #统计sum求和money字段
{ "_id" : null, "total" : 0 }

查看字段类型:

typeof(db.collectionName.findOne().field)
typeof(db.getCollection(collectionName).findOne().field)

> typeof(db.team_award.findOne({"uid":508}).mobile)
string

#把集合money字段string类型更改成doublue

db.getCollection('team_award').find({"money": {$type:2}}).forEach(function(x){ 
    db.getCollection('team_award').updateOne({_id: x._id}, {$set:{money: Number(x.money)}})
}) 

聚合查询循环删除不符合条件的记录

db.test.aggregate([ 
{
    $project:{ 
        'time':1,
        'year':{$year:'$time'}, //年份
        'month':{$month:'$time'},//月份
        'dayOfMonth':{$dayOfMonth:'$time'},//月份的第几天
        'dayOfWeek':{$dayOfWeek:'$time'},//周几
        'week':{$week:'$time'},//一年的第几周
        'dayOfYear':{$dayOfYear:'$time'},//一年的第多少天
        'date':{$dateToString:{format:'%Y%m',date:'$time'}}//自定义取值
    }
} 
]).forEach(function(item){ 
    if(typeof(item.time) != 'object' || item.date == "197001"){//如果类型或时间错误则删除
        return db.test.remove({_id:item._id});
    }
})

修改字段类型:【类型参考官方文档】$type — MongoDB Manual

mongodb数据字段类型

相关文章

网友评论

      本文标题:mongodb数据类型查看及修改笔记!

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