我正在尝试对集合执行聚合查询。我想划分 2 个字段并检查这是否小于某个值。
这个数据库的制作方式,它的所有字段都是字符串,这不是我现在可以真正改变的。我想知道是否有办法将值转换为数字,也许使用 $let 或其他东西?
我目前收到错误
exception: $divide only supports numeric types, not String and String
这是我尝试运行的查询类型的示例:
db.myCollection.aggregate([{
"$project": {
"mins": {
"$divide": ["$ALOWOVRLTOTL", "$FEESCALLCOST"]}
}
},
"$match": {
"mins": {
"$lte": 40
}
}
}])
需要注意异常情况。并相应地调整您的查询。
例外:$divide仅支持数字类型,不支持String和String
db.myCollection.aggregate([{
"$project": {
"mins": {
"$divide": [{'$toDouble': '$ALOWOVRLTOTL' }, {'$toDouble': '$FEESCALLCOST' }]}
}
},
"$match": {
"mins": {
"$lte": 40
}
}
}])
根据您的具体情况,您可以将字符串值转换为多种类型。在下面找到您可以转换的类型列表。
有关转换,请参阅 MongoDB 官方文档。