Nodejs书架。如何使用BETWEEN过滤器

时间:2016-10-10 18:40:15

标签: node.js bookshelf.js

我想通过元素的timeStamp过滤DB表。

表得到了行: ID,URL,时间表。

如何按某个范围内的时间戳过滤数据? 像往常一样在SQL中... BETWEEN firstTime和lastTime

我尝试了类似的事情:

  if (first_date && last_date) {
        Pages.forge()
            .where("Date", '>=' , first_date)
            .where("Date", '<=' , last_date)
            .fetchAll()
            .then(function (pages) {
                res.send(persons.toJSON());
            }).catch(function (error) {
                console.log(error);
                res.send('An error occured');
            });

2 个答案:

答案 0 :(得分:2)

model.query({where: {"Date", '>=' , first_date}, orWhere: {"Date", '<=' , last_date}})
      .fetch()
      .then(function(model) {
        // ...
      });

你必须使用where和or where例如:between表示两个条件中的任何一个,但在这里你设置为条件为真。

答案 1 :(得分:1)

如果将.query()添加到调用链,则可以在内部使用knex语法。

以您的示例为例:

      Pages.forge()
          .query(function(knex) {
              knex.whereBetween('Date', [first_date, last_date]);
          })
          .fetchAll()
          .then(function (pages) {
              // do something with pages
          }).catch(function (error) {
              // do something with error
          });