我有两个模型-订户和标签
样本数据:
{
subscribers: [
{
name: "User 1",
tags: ["a","b"]
},
{
name: "User 2",
tags: ["c","d"]
}
]
}
我想根据订阅者的标签过滤订阅者。
a
和b
标签,则用户1应该列出a
和c
标签,
用户1和用户2都应列出这是我尝试过的:
方法1:
tags
是subscribers
模型中具有数组数据类型的列
/subscribers/?filter={"where":{"tags":{"inq":["a","b"]}}} // doesn't work
方法2:
创建了一个单独的表tags
,并且集合subscribers
中有许多tags
。
/subscribers/?filter={"where":{"tags":{"inq":["a","b"]}}} // doesn't work
如何在Loopback中实现而不编写自定义方法?
我已将 Postgresql 作为连接器
答案 0 :(得分:2)
更新
如loopback docs中所述,您应该使用inq
而不是In
inq 运算符检查指定属性的值是否与数组中提供的任何值匹配。通用语法为: {其中:{属性:{ inq :[val1,val2,...]}}}
从此:
/ subscribers /?filter = {“ where”:{“ tags”:{“ In” :[“ a”,“ b”]}}}
对此:
/ subscribers /?filter = {“ where”:{“ tags”:{“ inq” :[“ a”,“ b”]}}}
答案 1 :(得分:0)
最后使用Regex找到了一个骇客!这不是一个高性能的解决方案,但它可以工作!!
{ "where": { "tags": { "regexp": "a|b" } } }