mongodb3.4字符类型的字段求和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb3.4字符类型的字段求和相关的知识,希望对你有一定的参考价值。
首先想到的是mongodb的聚合函数,具体操作如下:
表数据
db.test3.find(,content.targetCode:1,content.result:1)
使用聚合函数进行统计
db.test3.aggregate(
[
"$match":
"content.targetCode":patExam
,
"$group":
"_id": null,
"Total":
"$sum": "$content.result"
])
上面的结果为0,聚集函数无法对字符型的字段求和,要想求和有以下2个方案:
1.采用mapReduce(将字符串转换成浮点型)
var map = function()
emit(this.content.targetCode,this.content.result);
var reduce = function(key,values)
var cnt = 0.0;
values.forEach(function(val)cnt+=parseFloat(val););
return "sumAll":cnt;
db.test3.mapReduce(map,reduce,query:,out:res)
db.res.find()
统计完成后记得删除临时表res
db.res.drop()
2.修改原始数据将其由字符型改为浮点型
修改前的数据
修改后的数据
db.test3.find().forEach( function (x) x.content.result = parseFloat(x.content.result);db.test3.save(x);)
此时在使用聚合函数统计
db.test3.aggregate(
[
"$match":
"content.targetCode":patExam
,
"$group":
"_id": null,
"Total":
"$sum": "$content.result"
])
以上是关于mongodb3.4字符类型的字段求和的主要内容,如果未能解决你的问题,请参考以下文章
stream流运算:求和(基本数据类型,BigDecimal),多字段乘积求和,提取对象属性集合
mongodb 3.4.2 InvalidIndexSpecificationOption 错误:字段“唯一”对于 _id 索引规范无效