我有一个包含1000万条记录的集合,类似于这样。
{
"_id" : ObjectId("596dd10bbd1a6628ace1c14c"),
"X" : 13212,
"Z" : 173836,
"userID" : 9354785
}
用户ID是唯一的。我需要计算X的平均值和Z的总和。我可以使用以下MapReduce函数来计算Z的总和:
var mapFunction1 = function() {
emit(this.userID, this.Z);
};
var reduceFunction1 = function() {
return Array.sum(Z);
};
db.transaction.mapReduce(
mapfunction1,
reduceFunction1,
{out:"mapreduce"}
)
如何计算X的平均值?
我尝试使用Array.avg(Z),但它返回与sum(Z)相同的输出。