【问题标题】:Select object created between two dates by Bookshelf, MySQL, Knex on node.js选择 Node.js 上 Bookshelf、MySQL、Knex 在两个日期之间创建的对象
【发布时间】:2017-05-16 00:33:51
【问题描述】:

我需要获取两次之间创建的对象的列表;

我可以通过编写 SQL 查询来获取数据;

但是我需要通过书架来写这个查询;

我的简单查询:

    router.route('/locations')
  // fetch all locations
  .get(function (req, res) {
    Locations.forge()
    .fetch()
    .then(function (collection) {
      res.json({error: false, data: collection.toJSON()});
    })
    .catch(function (err) {
      res.status(500).json({error: true, data: {message: err.message}});
    });
  })

我怎样才能像上面的查询一样获得两个日期之间的位置?

【问题讨论】:

    标签: mysql node.js database bookshelf.js


    【解决方案1】:

    尝试向链中添加query() 调用,例如

    Locations
      .forge()
      .query(function(qb) {
        qb.whereBetween('creation', [initialDate, finalDate]);
      })
      .fetch()
      .then(function (collection) {
        res.json({error: false, data: collection.toJSON()});
      })
      .catch(function (err) {
        res.status(500).json({error: true, data: {message: err.message}});
      });
    

    参见书架 Collection.query() 和 Knex Query BuilderwhereBetween()

    【讨论】:

    • @flavoidesousa 谢谢,此代码适用于 id 但不适用于日期对象!有什么遗漏吗?
    • 为了在那个级别回答很多信息丢失。表架构、示例数据、您获得的行为、输出或错误消息、您正在使用的参数等等。
    • 问题出在响应类型上,通过转换为日期,我收到了真正的响应。
    • 这没有多大帮助。产生错误的代码和数据,确切的错误信息应该是起点。由于这个问题不再是查询约束,您应该创建一个包含尽可能多信息的新 SO 问题。
    猜你喜欢
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    相关资源
    最近更新 更多