知道为什么这不会使平均值回归(返回null)?
Pattern.aggregate([
{ $match: {
name: 'asdfaddf'
}},
{ $unwind: "$ratings" },
{ $group : { _id: "test", ratings : { $avg : "$ratings.rating" } } }
我的文档看起来像这个
"ratings" : [
{
"rating" : "5",
"userID" : "5a73ef842aed0f399ff4ee40",
"_id" : ObjectId("5a74893230eed03f1ebf3c5f")
},
{
"rating" : "3",
"userID" : "awefawefawfawef",
"_id" : ObjectId("5a74893230aad03f1ebf3c5e")
}
],
答案 0 :(得分:0)
看起来像使用非数字值,作为mongodb文档中的状态,这些将被忽略:
$ avg忽略非数字值,包括缺失值。如果平均值的所有操作数都是非数字的,则$ avg将返回null,因为零值的平均值未定义。
https://docs.mongodb.com/manual/reference/operator/aggregation/avg/#non-numeric-or-missing-values