我的Postgres dB表的@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart mpart)
{
PartStackOverflow part = (PartStackOverflow)mpart.getObject();
... call methods
}
表中有一列名为find
,该列以JSON格式存储一些信息。它的array_length为1。
样本数据:
EModelService
问题:
我正在尝试使用bookshelf.js ORM根据users
键的值来查询和搜索该表中的所有记录,特别是当其值为email_subscription_prefs
时。
这是我的代码的一段经过编辑的片段,显示了我正在尝试使用bookshelf.js实现此查询的内容:
[{"marketing":true,"transactional":true,"collaboration":true,"legal":true,"account":true}]
有人可以告诉我我在尝试查询JSON列marketing
的qb.whereRaw语句上做错了什么吗?
在true
表中有数千条记录的地方,代码不返回任何内容。
谢谢。
答案 0 :(得分:1)
您似乎在示例数据中有一个对象数组,而不是单个json对象。
[
{
"marketing":true,
"transactional":true,
"collaboration":true,
"legal":true,
"account":true
}
]
看起来您正在尝试引用数组中找不到的email_subscription_prefs->>'marketing'
。
要获取数组中第一项的marketing
属性,您应该执行以下操作:
email_subscription_prefs->0->>'marketing'
如果这不是问题,那么您将需要从数据库中添加一些示例数据,以便能够说明问题所在。您当前的描述对查询表的描述不够好。