带查找的Mongo聚合速度很慢

时间:2020-06-27 09:09:58

标签: mongodb

我有两个收藏集tasksstats。 在tasks集合中,有一个字段userId,在stats集合中,有一个我需要分组的数字字段result和与之相关的taskId字段到_id集合中的tasks

两个集合中都有大约4万条记录,当我进行聚合查询以计算result时,它可以是数字1、2、3 ...聚合需要几秒钟。

resulttaskId字段上有索引。

查询如下

db.getCollection('tasks').aggregate( [
  { $match: { userId: 'userId' }},
  { $lookup:
       {
          from: "stats",
          localField: "_id",
          foreignField: "taskId",
          as: "related"
      }
  },
  { $unwind:"$related" },
  { $project: {
       result:'$related.result'
  }},
  { $group: { _id: "$result", count: { $sum: 1 } } },
])

如何改进它以使其更快? 当我仅对stats集合进行相同查询时,需要花费毫秒,但是我需要查询特定用户。

0 个答案:

没有答案