【发布时间】:2018-11-13 15:39:12
【问题描述】:
我有两个简单的清晰模型,称为Parent(表父)和Child(表子)。 children 表有一个 JSON 字段,我们称之为 jsoncolumn。
我的父模型与模型 Child 具有 belongsToMany 关系。
children() {
return this.belongsToMany('App/Models/Child').pivotTable('parent_child');
}
我想从各种父母那里获取父母的值,加上字段jsoncolumn中包含的值,键为key;为此,我想使用 PostgreSQL 运算符->。使用 Adonis Lucid 语法,它给出了以下代码:
Parent.query().select('*')
.with('children', builder => {
builder.select(Database.raw("jsoncolumn->'key' AS foo"));
}).fetch();
问题,下面的代码不起作用。即使在Database.raw 子句中,运算符也被引用...所以生成的选择是:
SELECT "children"."jsoncolumn->'key'"
请注意,它也不允许使用任何功能。实际上,任何不是列名的东西都行不通。
为了做到这一点,正确的语法是什么?
【问题讨论】:
标签: javascript postgresql activerecord adonis.js