获取postgres db的jsonb列



我使用node-postgres来选择和插入数据到postgres。我有一些jsonb类型的列,我通过使用下面的查询

从数据库获取
getEmployee() {
return SELECT empId, empData FROM employee WHERE empId = $1;
}

其中empDatajsonb类型的列。下面是使用上述查询的代码片段。

const employee = await DBService.query(pgObj.getEmployee(), [empId]);

当我试图从employee获得empData时,我得到空值。

const { empData } = employee;
我不知道我在这里错过了什么。在nodejs中获取postgreasdb的josnb列是否正确?

您确定在数据库中填充了empdata吗?也许它是空的。另外,empdata的jsonb字段有哪些?

要获得empdata的实际子字段,您需要->>操作符。如:

获取整个json对象作为text

SELECT empId, empData::text
FROM employee where empId = $1

获取单个属性

SELECT empId, empData->>annual_pay as salary
FROM employee WHERE empId = $1;

等等……你也可以试试看看这里:https://kb.objectrocket.com/postgresql/how-to-query-a-postgres-jsonb-column-1433

我还没有试过这些,我现在不在postgres前面。

最新更新