在MongoDB中,要找到包含NaN值的字段的$avg和$sum,可以使用聚合管道操作符$cond、$ifNull和$ne。
首先,使用$cond操作符和$ifNull操作符将NaN值转换为0。然后使用$ne操作符检查字段是否为NaN。接下来,使用$group和$avg操作符或$sum操作符进行计算。
以下是一个示例聚合查询:
db.collection.aggregate([
{
$project: {
fieldWithNaN: {
$cond: {
if: { $ne: ["$field", NaN] },
then: "$field",
else: 0
}
}
}
},
{
$group: {
_id: null,
avgWithNaN: { $avg: "$fieldWithNaN" },
sumWithNaN: { $sum: "$fieldWithNaN" }
}
}
])
在上面的示例中,collection
是你要查询的集合名称,field
是包含NaN值的字段名。
请注意,NaN值在MongoDB中被视为一个特殊的非数字值,因此需要使用特殊的方式来处理它。
领取专属 10元无门槛券
手把手带您无忧上云