首页 > 解决方案 > 过去 7 天内创建的记录的水线查询?

问题描述

Sails v12.14 使用 Waterline 连接到 MongoDB

有没有办法对从当前日期起最近 7 天内创建的所有记录进行查找查询?我试过寻找答案,但我猜我没有找到正确的关键字来找到我需要的答案。

例如,这是我的功能:

getOpen: function getOpen(req, res) {
 Ticket.find({
  status: "open",
  open_date: [insert magic here]
 }).then(function response(findModelResults) {
    res.json(200, findModelResults);
   })
   .catch(function error(findModelError) {
    sails.log.error('TicketController.getOpen', findModelError);
    res.json(500, findModelError);
   });
}

这适用于提取所有票证,但我不确定如何仅过滤过去 7 天。

标签: javascriptsails.jswaterlinesails-mongo

解决方案


我使用momentJS进行日期格式化。以下代码段应该可以工作。

getOpen: function getOpen(req, res) {
  const date = new Date();
  Ticket.find({
      status: "open",
      open_date: {
        '>=': moment(new Date(date.getFullYear(), date.getMonth(), date.getDate() - 7))
          .utc()
          .toISOString();
      }
    })
    .then(function response(findModelResults) {
      res.json(200, findModelResults);
    })
    .catch(function error(findModelError) {
      sails.log.error('TicketController.getOpen', findModelError);
      res.json(500, findModelError);
    });
}

推荐阅读