Ватерлинии запрос на записи, созданные в течение последних 7 дней? - PullRequest
0 голосов
/ 31 августа 2018

Sails v12.14 подключается к 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 дней.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

При этом будут получены билеты с open_date больше 24 часов * 7 дней (168 часов)

 getOpen: function getOpen(req, res) {
      var sevenDaysAgo = new Date();
      sevenDaysAgo.setTime(new Date().getTime() - (7 * 24 * 3600 * 1000));
      Ticket.find({
          status: "open",
          open_date: {
            '>=': sevenDaysAgo
          }
        })
        .then(function response(findModelResults) {
          res.json(200, findModelResults);
        })
        .catch(function error(findModelError) {
          sails.log.error('TicketController.getOpen', findModelError);
          res.json(500, findModelError);
        });
    }
0 голосов
/ 01 сентября 2018

Я использовал 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);
    });
}
...