我有一组文档,其值已知为数字,但存储为字符串.更改字段的类型是我无法控制的,但我想在聚合中使用该字段(例如,对其进行平均).
似乎我应该在分组之前使用投影,并且在该投影中根据需要转换字段.我似乎无法正确地得到语法 - 我尝试的一切都给了我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)