MongoDB$match$组查询速度慢

MongoDB$match$组查询速度慢,mongodb,mongodb-query,mongodb-indexes,Mongodb,Mongodb Query,Mongodb Indexes,因此,我对大约500k个文档进行了以下查询,但在数据库方面的查询速度非常慢: db.collection('news').aggregate( [ { $match: { feeds: { $in: feeds }, createdAt: { $lte: lastPostDate }, deleted: { $exists: false }

因此,我对大约500k个文档进行了以下查询,但在数据库方面的查询速度非常慢:

db.collection('news').aggregate(
    [
      {
        $match: {
          feeds: { $in: feeds },
          createdAt: { $lte: lastPostDate },
          deleted: {
            $exists: false
          }
        }
      },
      {
        $group: {
          _id: { title: '$title' },
          id: { $first: '$_id' },
          title: { $addToSet: '$title' },
          source: { $first: '$source' },
          shortid: { $first: '$shortid' },
          stats: { $first: '$stats' },
          log: { $first: '$log' },
          createdAt: { $first: '$createdAt' },
          feedUpdated: { $first: '$feedUpdated' },
          media: { $first: '$media' },
          title: { $first: '$title' }
        }
      },
      { $sort: sort },
      {
        $skip: limit * (page - 1)
      },
      {
        $limit: limit * 1
      }
    ],
    {
      allowDiskUse: true,
      cursor: {}
    }
)
我知道allowDiskUse让它变慢了,但如果我禁用它,我会得到:

MongoError:超出了$group的内存限制,但不允许 外部排序。Pass allowDiskUse:选择加入为true

参考:-

let aggregation = MongoSchemaModel.aggregate([]); 
aggregation.options = { allowDiskUse: true }; 
aggregation.exec((err, data) => {});
let aggregation = MongoSchemaModel.aggregate([], { allowDiskUse: true });
aggregation.exec((err, data) => {});