Bookshelf.js,其中包含json列Postgresql

Bookshelf.js,其中包含json列Postgresql,json,postgresql,bookshelf.js,Json,Postgresql,Bookshelf.js,我对Bookshelf有一个问题,我想使用查询来创建json类型的列 我的表中有列'data'类型json,我希望获取此列'team'='PSG'中的所有元素 我测试: collection.query('whereRaw', "data->'team'->>'PSG'"); 我有这个错误 WHERE的参数必须是布尔类型,而不是文本类型 或者我测试 collection.query('where', "data", "#>", "'{team, PSG}'");

我对Bookshelf有一个问题,我想使用查询来创建json类型的列 我的表中有列'data'类型json,我希望获取此列'team'='PSG'中的所有元素

我测试:

  collection.query('whereRaw', "data->'team'->>'PSG'");
我有这个错误

WHERE的参数必须是布尔类型,而不是文本类型

或者我测试

collection.query('where', "data", "#>", "'{team, PSG}'");
我有这个错误

不允许使用运算符\>\

我想我有一份简短回答的报告:

说明:

假设您有一个表foos,其中元素foo是

对此的原始查询如下所示

select * from "foos" where "attr" @> '{"bar":"fooBar"}';
Foo.where('attr', '@>', '{"bar":"fooBar"}').fetch().then(function(rows){});
现在在Bookshelf中,如果您有一个表示表foos的模型Foo,那么查询应该是这样的

select * from "foos" where "attr" @> '{"bar":"fooBar"}';
Foo.where('attr', '@>', '{"bar":"fooBar"}').fetch().then(function(rows){});
现在你的情况应该是

collection.query('where', 'data', '@>', '{"team": "PSG"}');

希望兹拉坦能批准

我正在使用相同的查询,但仍然得到错误,未经处理的拒绝错误:从foo中选择foo.*其中attr@>1 limit$2-运算符不存在:json@>unknown。请使用debug标志运行knex查询并发布准确的查询,好吗?无论是谁尝试完成相同的任务,请不要遵循这些说明。瓦桑斯在2016年10月19日的评论仍然正确。PostgreSQL生成以下错误:错误:运算符不存在:json@>未知第1行:…t*来自电子邮件订阅的用户“{mark…^提示:没有运算符与给定的名称和参数类型匹配。您可能需要添加显式类型转换。