我的管道中有以下查询:
where([e], fragment("?->>? = ?", e.fields, ^field_name, ^field_value))
e
在此情况下代表event
。片段方法调用的第一个参数是什么?
答案 0 :(得分:1)
调用Ecto.Query.API.fragment/1
的第一个参数是要发送到数据库的片段的模板。
这里是retrieve a JSON object field as text的Postgres函数。就是这样,
fragment("?->>? = ?", e.fields, ^field_name, ^field_value)
字面意思是“其中JSONB字段中名称为field_name
的嵌套字段的值等于field_value
。”