小编Jes*_*ish的帖子

将字符串转换为MongoDB投影中的数字

我有一组文档,其值已知为数字,但存储为字符串.更改字段的类型是我无法控制的,但我想在聚合中使用该字段(例如,对其进行平均).

似乎我应该在分组之前使用投影,并且在该投影中根据需要转换字段.我似乎无法正确地得到语法 - 我尝试的一切都给了我NaN,或者在聚合的下一步中简单地丢失了新字段.

$project: {
    value: '$value',
    valueasnumber: ????
}
Run Code Online (Sandbox Code Playgroud)

鉴于上面的一个非常简单的例子,其中所有文档中$ value的内容都是字符串类型,但是将解析为一个数字,我该怎么做使valueasnumber一个新的(不存在的)字段,其类型为double,并且已解析它的价值是多少?

我尝试过类似下面的例子(以及大约十几个类似的东西):

{ $add: new Number('$value').valueOf() }
new Number('$value').valueOf()
Run Code Online (Sandbox Code Playgroud)

我完全吠叫了错误的树吗?任何帮助将不胜感激!

(要100%清楚,下面是我想要使用新字段的方式).

$group {
    score: {
        $avg: '$valueasnumber'
    }
}
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

mongodb ×1

mongodb-query ×1