我有一個集合稱爲 「事件」,看起來像這樣:地圖減少的MongoDB:_id問題
{
"_id" : ObjectId("4fd89f8d3cbec825d7000001"),
"type" : "lms_course_view",
"datetime" : ISODate("2011-12-23T12:55:00Z"),
"user" : [
{
"_id" : ObjectId("4fd89f8d3cbec825d7000000")
}
]
}
而另外一個被稱爲 「用戶」,具體如下:
{
"_id" : ObjectId("4fd89f8d3cbec825d7000000"),
"name" : "02ad1046f",
(...)
}
我試圖計算每個用戶製作每種事件類型的次數。我用的map-reduce很努力,但我不知道如何創建一個映射函數在事件迭代,同時發出用戶名(存儲在不同的集合)。
任何線索?用map-reduce可以嗎?
這是可能的,但你必須做兩個MapReduce的,你可以找到一個樣本[這裏](http://tebros.com/2011/07/using-mongodb-mapreduce-to-join-2-collections /)。 – Eric
是否有用戶名不在事件集合中的原因?您可能會考慮反規範化您的模式,以便將該名稱添加到用戶數組中。 –