有無陣列如下,需要被保存在JSONB柱:,柱<columnName>是類型jsonb的但表達的類型是文本的[]
[{"FoodType":"veg","pref":"High"}
,{"FoodType":"sea food","pref":"Medium"}
,{"FoodType":"Chicken","pref":"Low"}]
我簡單地傳遞req.body對象(從快遞)插入到數據庫。
db.one('insert into foodies(FoodieName, FoodPref,country,languagePref)' +
'values(${FoodieName}, $[FoodPref], ${country} ,${languagePref}) RETURNING FoodieId',req.body)
** PG經由PG-承諾庫DB拋出錯誤:
{ [error: column "foodpref" is of type jsonb but expression is of type text[]]
name: 'error',
length: 196,
severity: 'ERROR',
code: '42804',
detail: undefined,
hint: 'You will need to rewrite or cast the expression.',
position: '123',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_target.c',
line: '529',
routine: 'transformAssignedExpr' }
POST /api/member 500 638.510 ms - 57
我認爲它驅動的問題餘弦陣列:功能(ARR)在formatting.js [以pg-承諾LIB]返回字符串和postgres不能消化它。如果array嵌套在任何對象中,那麼它可以平滑地工作,例如
"MyPref" : {Same Object array as above}
這裏MyPref在列「FoodPref」中通過沒有任何問題。
您應該附上您正在執行的確切查詢。要不執行查詢,請使用方法[pgp.as.format](http://vitaly-t.github.io/pg-promise/formatting.html#.format)。 –
我問過你使用'pgp.as.format'生成的查詢來更新問題,而不是你傳遞給查詢方法的問題。 –
對不起:(不能得到查詢...請幫助與示例代碼和位置得到查詢生成。我嘗試response.log在.one方法buts返回相同的查詢我已經把問題 –