在 MongoDB 中,如何忽略从获取时间起不到五分钟的时间内插入的文档

In MongoDB, how to ignore documents that was inserted less than five minutes of time from the time of fetching

testResults.aggregate([
  { $match: { testId: { "$exists": true } } },
  { $sort: { _id: -1 } },
  {
    $group: {
      _id: "$testId",
      testDetails: {
        $push: {
          result: "$result",
          testName: "$testName"
        }
      }
    }
  },
  {
    $addFields: {
      testDetails: { $slice: ["$testDetails", 30] }
    }
  }
])
.exec(function (err, testResults) {
  if (err) res.send(err);
  res.json(testResults);
});

使用这种聚合方法,我正在获取最近的 30 个文档。 现在,我需要忽略在提取后不到五分钟的时间内插入的文档。 在,$match aggregate如何实现这个或者有什么其他方法吗?

像这样的$match阶段应该做到:

{
  $match: {
    $expr: {
      $lt: [
        {$toDate: '$_id'},
        {$subtract: [new Date(), 300000]}
      ]
    }
  }
}

300000 是以毫秒为单位的 5 分钟。