2015-05-07 118 views
3

使用node-pg我试图查找一个JSON对象内的字符串的存在。节点Postgres查询json

实施例(的部分)排:

{ viq_id: '801583', 
    title: 'Blank, security key, lock system, and production method', 
    applicants: [ [Object], [Object] ], 
    cpc: [ [Object], [Object] ], 
    abstract: { value: [Object], language: 'en' } } 

抽象的类型是JSONB的。 当查询此

var query = 'SELECT viq_id, title, applicants, cpc, abstract ->> "value"' + 
    ' FROM epo_patents' + 
    ' WHERE title ILIKE $1'; 

或本

var query = 'SELECT viq_id, title, applicants, cpc, abstract' + 
     ' FROM epo_patents' + 
     ' WHERE title ILIKE $1 OR abstract ->> "value" = $1'; 

或本

var query = 'SELECT viq_id, title, applicants, cpc, abstract' + 
     ' FROM epo_patents' + 
     ' WHERE abstract.value = $1'; 

答案是 “errorMissingColumn”,或者在后一种情况下errorMissingRTE

如何我在节点pg中正确查询JSON?

回答

2

变化var query = 'SELECT viq_id, title, applicants, cpc, abstract ->> "value"'var query = "SELECT viq_id, title, applicants, cpc, abstract ->> 'value'",因为用于数据库对象(表,列等)的名称双引号... 看看Postgres JSON syntax