我使用node-postgres
来选择和插入数据到postgres
。我有一些jsonb
类型的列,我通过使用下面的查询
getEmployee() {
return SELECT empId, empData FROM employee WHERE empId = $1;
}
其中empData
为jsonb
类型的列。下面是使用上述查询的代码片段。
const employee = await DBService.query(pgObj.getEmployee(), [empId]);
当我试图从employee
获得empData
时,我得到空值。
const { empData } = employee;
我不知道我在这里错过了什么。在nodejs
中获取postgreas
db的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前面。