如何解决为什么我的 mongodb 聚合计数以小数形式返回?
以下查询
db.getCollection("xyzCollection").aggregate(
[
{ $match:
{ "startDate": { $gte: ISODate("2021-01-21T00:00:00.000+0000") },"markets": { $exists: true }}
},{ $group:
{ _id: "$sportName","count": { $sum: 1 } }
},]
)
返回以下输出:
{
"_id" : "Ice Hockey","count" : 138.0
}
{
"_id" : "Basketball","count" : 141.0
}
{
"_id" : "Cricket","count" : 14.0
}
{
"_id" : "Volleyball","count" : 32.0
}
{
"_id" : "Football","count" : 685.0
}
这是为什么?我怎样才能让它返回一个int?我正在使用 Studio 3T 2020.10.1 来执行查询。我已经尝试过使用 $toInt(包装“1”或包装“{ $sum: 1 }”),但正如预期的那样,它不起作用 - 语法错误。
谢谢。
解决方法
它将返回 int
您可以在 $toInt
管道中使用 $project
。
{
$project: {
sum: {$toInt :"$count" }
}
}
我认为这是由于 Robo3t/Studio3t
感谢@wernfried reference 为这种行为辩护。
,如果您的查询由 javascript 运行时执行(这是 ISODate
建议的用法,因为这不是 MQL 构造),呈现结果的(相同)运行时只有一种数字类型,它是浮点类型。
使用用另一种支持整数类型的语言编写/使用的工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。