2
我有一個postgres表與jsonb數組元素,我試圖做sql查詢來提取匹配的元素。我有一個從Postgres的命令行界面運行原始的SQL查詢:使用書架在Postgres JSONB數組元素上執行查詢
select * from movies where director @> any (array ['70', '45']::jsonb[])
這將返回我要找的(從電影表中的所有記錄的結果,其中導演jsonb元素包含在輸入任何元素元件)。
在代碼中,['70,'45']的值將是一個動態變量,即。 fixArr和數組的長度未知。
我試圖將其構建到我的Bookshelf代碼中,但一直未能找到解決用例複雜性的任何示例。我試過以下方法,但他們都不工作:
models.Movies.where('director', '@> any', '(array' + JSON.stringify(fixArr) + '::jsonb[])').fetchAll()
ERROR: The operator "@> any" is not permitted
db.knex.raw('select * from movies where director @> any(array'+[JSON.stringify(fixArr)]+'::jsonb[])')
ERROR: column "45" does not exist
models.Movies.query('where', 'director', '@>', 'any (array', JSON.stringify(fixArr) + '::jsonb[])').fetchAll()
ERROR: invalid input syntax for type json
任何人都可以幫忙嗎?