获取 24 小时前的 X 条记录 Mongoose

Get X records from 24 hours ago Mongoose

我的项目基于 Hapi.js 和 Mongoose。我无法获取 24 小时前的 X 价格。

我通过这种方式获取最新添加的记录:

        const pricesnow = await Prices.find({
          currency_id: {
            $in:
              currencies[k].id
          },
          createdAt: {
            $gt: new Date().getTime() - 1000 * 60 * 1
          }
        })

所以我认为我可以使用以下代码获取 24 小时前的 x 记录:

        const prices24h = await Prices.find({
          currency_id: {
            $in:
              currencies[k].id
          },
          createdAt: {
            $gt: new Date().getTime() - 86400000,
            $lt: new Date().getTime() - 86399999
          }
        })

但是即使数据库中有数据,24小时前的价格也没有return。

第二个代码仅在时间跨度在一小时内有效。

之后我将从 pricesnow 中减去 prices24h 来计算 24h 百分比。

提前感谢您的回答。

访问MongoDB: Only fetch documents created in the last 24hrs?

试试这个link希望它能帮到你

db.getCollection("COLLECTION_NAME").find({"createdAt":{$gt:new Date(Date.now() - 24*60*60 * 1000)}})

谢谢

您可以使用 limitsort 函数以及 find

const pricesnow = await Prices.find({
  currency_id: {
    $in: [], // replace with currency array
  },
  createdAt: { $gt: new Date(Date.now() - 86400000) },
})
  .sort({ createdAt: -1 })
  .limit(10);