MongoDB中的GROUP BY等价物?

时间:2018-01-18 19:23:41

标签: mongodb robo3t

我正在处理一个包含大约300万个文档的MongoDB集合。这些文档是从SQL表转换而来的。结构非常简单:

{
  RowId: 1234,
  UserId: 23,
  User: {
    UserName: "John"
  }
}

在SQL中,查询非常简单:

通过UserId从SomeTable组中选择max(RowId),UserId

在生产服务器中,此表有300万行。这个非常繁忙的服务器在不到1秒的时间内返回628行。但是在MongoDB中,我似乎无法找到返回类似响应的方法。

这是我尝试过的:

db.Events.aggregate([{
  $group: {
    _id: "$UserId",
    lastRow: {
      $max: "$RowId"
    }
  }
}])

我在RowId和UserId字段中都创建了索引。但基本上发生的事情是Mongo进程开始使用越来越多的RAM,在某些时候,我正在使用的GUI(Robo 3T)没有做任何事情。我必须杀死Mongo进程。

0 个答案:

没有答案