用于排序的地图还原



我有一个收藏的文档具有以下结构:

{
  "_id" : ObjectId("XXXX"),
  "data" : "stuff",
  "type" : "X",
  "location" : [XX, XX],
  "datetime" : {stuff},
  "user" : 453,
  "userName" : "XXX",
  "timestamp" : XXXX,
  "device" : XXXX
}

我需要知道每个用户使用哪个设备。

由于每个文档是日志条目,因此每个用户可能有很多。因此,我需要做的是每个用户加重它们。

我现在在PHP Rigth中进行此操作,但是需要长时间,大约有2K用户和60k日志,因此我认为使用Map-reduce是最佳选择。

我不太了解地图减少,我才刚刚开始。你能告诉我一个例子吗?

使用简单的聚合。

 db.yourcollection.aggregate([
    {$match : { user : 453}},
    {$group : {_id : "$user", devices: {$push : "$device"}}}
]);

这将返回用户453的所有设备(保存在称为设备的数组中)。

最新更新