如何从 Knex / Postgresql 查询返回纯值?

2024-01-07

我正在尝试使用 Knex 从 Postgres DB 返回一个简单的标量字符串值。到目前为止,我所做的一切都会返回一个带有键(列名)和值的 JSON 对象,因此我必须访问该对象才能获取值。如果我返回多行,那么我会得到多个 JSON 对象,每个对象都重复该键。

我可能会返回多列,在这种情况下,每一行至少需要是一个数组。我并不是在寻找指定单个列返回不带数组的值的特殊情况——我可以访问数组。我想避免使用重复列出列名作为键的 JSON 对象。

我已经浏览过 Knex 文档,但不知道如何控制输出。

我的表是一个简单的映射表,有两个字符串列:

CREATE TABLE public._suite
(
    piv_id character(18) NOT NULL,
    sf_id character(18)  NOT NULL,
    CONSTRAINT _suite_pkey PRIMARY KEY (piv_id)
)

当我使用 Knex 方法构建查询时,例如

let myId = 'foo', table = '_suite';
return db(table).where('piv_id', myId).first(['sf_id'])
                .then( function(id) { return(id); });

I get {"sf_id":"a4T8A0000009PsfUAE"};我想要的只是"a4T8A0000009PsfUAE"

如果我使用原始查询,例如

return db.raw(`select sf_id from ${table} where piv_id = '${myId}'`);

我得到一个更大的 JSON 对象来描述结果:

{"command":"SELECT","rowCount":1,"oid":null,"rows":[{"sf_id":"a4T8A0000009Q9HUAU"}],"fields":[{"name":"sf_id","tableID":33799,"columnID":2,"dataTypeID":1042,"dataTypeSize":-1,"dataTypeModifier":22,"format":"text"}],"_parsers":[null],"RowCtor":null,"rowAsArray":false}

我需要做什么才能获得价值本身? (再说一次,如果它在数组中我没问题——我只是不想要列名。)


看看pluck https://knexjs.org/#Builder-pluck method.

db(table).where('piv_id', myId).pluck('sf_id'); // => will return you ["a4T8A0000009PsfUAE"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Knex / Postgresql 查询返回纯值? 的相关文章

  • grails postgres 消息:错误:列 this_.id 不存在

    grails 和 postgres 用于用户域 Message ERROR column this id does not exist 明白问题了 对于用户域 我将 postgres 表设置为 用户 因此 默认情况下 当它尝试查询用户表时
  • PostgreSQL函数中如何返回查询结果行?

    我按照教程尝试了很多次 但都失败了 有人可以给我一些例子吗 这是我的代码 它提示 ERROR invalid type name SETOF RECORD create or replace function find returns SE
  • 使用 pyspark 连接 PostgreSQL

    我正在尝试使用 pyspark 连接到数据库 并且使用以下代码 sqlctx SQLContext sc df sqlctx load url jdbc postgresql hostname database dbtable SELECT
  • 无法在 Google Cloud Function 中加载 node_modules(index.js,不在项目根目录上)

    因此 我需要部署 Google Cloud Function 以在 PostgreSQL 数据库 Cloud SQL 上发出选择请求 我需要使用 pg 模块 然后使用以下命令安装它 npm i pg 你需要知道我的项目目录是这样的 proj
  • Django 全文搜索优化 - Postgres

    我正在尝试利用 Django v2 1 和 Postgres 9 5 创建一个地址自动完成功能的全文搜索 但性能目前不适合自动完成 我不明白逻辑我得到的绩效结果背后 就信息而言 该表相当大 有 1400 万行 我的型号 from djang
  • “PG DuplicateTable:错误关系“产品”已存在”- Heroku db:迁移尝试

    Rails 菜鸟尝试将 DB 迁移到 Heroku 请原谅这个错误消息的多汁性 但我认为将其全部包含在内可能很重要 我不知道为什么会发生这种情况 也不知道这意味着什么 我的架构中只有一张产品表和一张创建产品迁移表 Migrating to
  • WHERE BETWEEN 子句中的 PostgreSQL jsonb 值

    我的数据库表 a table 中有 jsonb 字段 其中包含 int 值 例如 abc def ghk 500 我将使用 WHERE 子句创建带有此字段 ghk 过滤器的 SELECT SELECT FROM a table WHERE
  • PostgreSQL - 具有局部变量的函数 - 列引用不明确

    我查看了与我的主题相匹配的其他问题 但就我而言 我认为歧义来自于与列同名的变量 这是我尝试创建的函数的简化版本 CREATE OR REPLACE FUNCTION get user id username TEXT RETURNS INT
  • Postgres UUID 和休眠

    我有一个具有 UUID 列的实体 它不是主键 我正在使用 Postgres 和 hibernate 我对此专栏的类型是https www postgresql org docs 9 1 static datatype uuid html h
  • 如何使用flyway将数据从一个DB迁移到另一个DB?

    我在不同的服务器上有两个 postgreSql DB 比如说 A 和 B 我可以使用 Flyway 一些如何将所有数据从 DB A 复制到新设置且为空的 B 如果有人指出我正确的方向和工具 这将很有帮助 要求是通过某种工具自动化将数据从一个
  • 更改 IdentityServer4 实体框架表名称

    我正在尝试更改由 IdentityServer4 的 PersistedGrantDb 和 ConfigurationDb 创建的默认表名称 并让实体框架生成正确的 SQL 例如 而不是使用实体IdentityServer4 EntityF
  • 使用 pg-promise 进行多行插入

    我想用一个插入多行INSERT查询 例如 INSERT INTO tmp col a col b VALUES a1 b1 a2 b2 有没有一种方法可以轻松地做到这一点 最好是对于像这样的对象数组 col a a1 col b b1 co
  • 从 postgres 表中提取 json 数组给出错误:无法从标量中提取元素

    通过使用jsonb array elements 提取出来的函数jsonb来自 Postgres 的数据数组 它给出了错误 无法从标量中提取元素 我认为这是因为NULL在返回调用中 添加了NULL检查状况但不工作 任何帮助表示赞赏 sele
  • 查询 Postgres 9.6 JSONB 对象数组

    我有下表 CREATE TABLE trip id SERIAL PRIMARY KEY gps data json jsonb NOT NULL gps data json 中的 JSON 包含一个行程对象数组 其中包含以下字段 示例数据
  • SQL Not Empty 代替 Not NULL

    我正在使用 postgreSQL 我有一个专栏 NOT NULL 但是 当我想插入带有空字符串的行时 如下所示 它不会给我错误并接受 我如何检查插入值应该是not empty 既不为空也不为空 PS 我的专栏定义为 ads characte
  • Heroku 上的 Python 入门 - 未找到 pg_config 可执行文件

    我一直在关注文档 直到安装requirements txt 文件 尝试安装第 6 行 psycopg2 2 5 3 时总是失败 这是消息 Downloading unpacking psycopg2 2 5 3 from r require
  • org.postgresql.util.PSQLException:协议错误。会话设置失败

    我知道这些类型的问题已经存在 但提供的解决方案对我不起作用 在我的应用程序中 没有版本不匹配的黑白驱动程序和 PostgreSQL 服务器 我还没有找到任何其他解决方案 我正在使用 PostgreSQL 服务器 9 4 和 postgres
  • 如何使用 libpq 获取双精度值?

    The examples http www postgresql org docs 9 3 interactive libpq example htmllibpq 文档中展示了如何通过将整数值转换为主机字节序表示来获取整数值 我很好奇必须做
  • 当我耗尽 bigint 生成的密钥时会发生什么?怎么处理呢?

    我自己无法想象一个好的答案 所以我想在这里问 在我心里 我总是想知道 如果AUTO INCREMENT PRIMARY ID我的专栏MySQL表用完了吗 举例来说 我有一个有两列的表 一个ID auto increment primary
  • 使用 RMySQL 会干扰 RPostgreSQL

    我有一个 R 脚本 我想从 MySQL 数据库中提取一些数据 然后从 PostgreSQL 数据库中提取一些数据 但是 从 RMySQL 加载 MySQL 驱动程序会阻止我从以下位置加载 PostgreSQL 驱动程序 PostgreSQL

随机推荐