【发布时间】:2019-03-15 20:48:44
【问题描述】:
//样本采集
db.grades.insertMany([{ _id: 1, quizzes: [ 1, 2, 3 ] },
{ _id: 2, quizzes: [ ] },
{ _id: 3, quizzes: [ 3, 8, 9 ] }])
以下是我正在使用并获得结果的查询。 //总和的乘积
db.grades.aggregate(
[
{ $project:
{ sumof:
{
$map:
{
input: "$quizzes",
as: "grade",
in: { $sum :[ "$$grade", "$$grade" ] }
}
}
}
},
{ $project :
{ "productOfSum":
{ $reduce :
{ input : '$sumof',
initialValue: 1,
in : {$multiply :["$$value","$$this"]}
}
}
}
}
]
)
查询的输出如下。
{"_id":1,"productOfSum":48}
{"_id":2,"productOfSum":1}
{"_id":3,"productOfSum":1728}
任何人都可以建议 "_id:2" 的值如何以及为什么会以 1 的形式出现,即使数组是 空?
【问题讨论】:
-
因为
initialValue是1 -
然而数组为空。将一个空数组乘以 1,结果应该是 1 还是 0?
标签: mongodb