首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用knex.js和objection.js在Postgres中查询小于48小时的记录?

要使用knex.js和objection.js在Postgres中查询小于48小时的记录,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了Node.js和PostgreSQL,并创建了一个数据库。
  2. 在项目中安装knex.js和objection.js依赖:
代码语言:txt
复制
npm install knex objection pg
  1. 创建一个knex.js配置文件,例如knexfile.js,配置数据库连接信息:
代码语言:txt
复制
module.exports = {
  development: {
    client: 'pg',
    connection: {
      host: 'your_host',
      user: 'your_username',
      password: 'your_password',
      database: 'your_database',
    },
    migrations: {
      directory: './migrations',
    },
  },
};
  1. 创建一个数据库迁移文件,用于创建表格和字段:
代码语言:txt
复制
npx knex migrate:make create_records_table

在生成的迁移文件中,编写创建表格和字段的代码,例如:

代码语言:txt
复制
exports.up = function (knex) {
  return knex.schema.createTable('records', function (table) {
    table.increments('id').primary();
    table.string('name');
    table.timestamp('created_at').defaultTo(knex.fn.now());
  });
};

exports.down = function (knex) {
  return knex.schema.dropTable('records');
};
  1. 运行数据库迁移,创建表格和字段:
代码语言:txt
复制
npx knex migrate:latest
  1. 在代码中使用knex.js和objection.js进行查询操作。首先,创建一个模型类来映射数据库表格:
代码语言:txt
复制
const { Model } = require('objection');

class Record extends Model {
  static get tableName() {
    return 'records';
  }
}

module.exports = Record;
  1. 在查询代码中,使用knex.js的查询构建器来构建查询语句,并使用objection.js的模型类进行查询:
代码语言:txt
复制
const knex = require('knex');
const { Model } = require('objection');
const Record = require('./models/Record');

// 初始化knex.js连接
const db = knex({
  client: 'pg',
  connection: {
    host: 'your_host',
    user: 'your_username',
    password: 'your_password',
    database: 'your_database',
  },
});

// 绑定knex.js连接到objection.js
Model.knex(db);

// 查询小于48小时的记录
const records = await Record.query()
  .where('created_at', '>', db.raw('now() - interval \'48 hours\''))
  .orderBy('created_at');

console.log(records);

以上代码中,通过where方法传入一个原始的SQL表达式来筛选小于48小时的记录,并通过orderBy方法按照created_at字段进行排序。

这样,就可以使用knex.js和objection.js在Postgres中查询小于48小时的记录了。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云PostgreSQL:https://cloud.tencent.com/product/postgres
  • 腾讯云云数据库 PostgreSQL:https://cloud.tencent.com/product/tcr
  • 腾讯云云原生数据库 TDSQL-C:https://cloud.tencent.com/product/tdsqlc
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 别再用MongoDB了!

    joepie91认为,MongoDB不仅存在诸多问题,而且并无突出之处。如果项目涉及用户账户或者两条记录之间存在某种关系,那么就应该使用关系型数据库,而不是文档存储;如果项目在使用Mongoose,那么也应该使用关系型数据库,因为Mongoose只是使用文档存储模拟了有模式的关系型数据库。因此,大多数情况实际上需要的都是一个关系型数据库。在这些情况下,PostgreSQL是个不错的可选方案。开发者可以使用查询构建器或ORM来简化使用过程,比如,在Node.js中,可以选用Knex、Bookshelf、Sequelize或Waterline。即使真得需要一个文档存储,那么也有比MongoDB更好的选项。另外,他也不认为MongoDB适合于创建原型,因为如果生产环境使用不同的数据库,则还需要重写所有的代码。总之,MongoDB并没有什么适用场景。它在技术上比不上其它可选方案,并没有提供真正有用的独有的特性,而且开发人员也无法确保数据一致性和安全。最后,joepie91指出,流行度并不等同于质量,只能说明产品有一个不错的市场团队:

    02
    领券