使用LB 4框架和Postgres for DB,使用**“loopback-connector-postgresql”:“^3.7.0”进行DB连接,并在使用findquery withwhere**操作符通过匹配数组中的值来获取数据列表时遇到问题,下面共享所使用的查询,
样本表数据:
[{id: 1,
roll: [1,4]
},{
id:2,
roll: [1,3],
},{
id:3,
roll: [2,4]
}]
字符串
在标有强制性的模型卷中
使用的查询:this.repository.find({where: { roll: { inq: [4] }}});
预期输出:
[{id: 1,
roll: [1,4]
},{
id:3,
roll: [2,4]
}]
型
对于上面的代码段,loopback 4中的typescript抛出下面的错误
*Argument of type '{ where: { roll: { inq: number[]; }; }; }' is not assignable to parameter of type 'Filter<ModelRow>'.
Types of property 'where' are incompatible.
Type '{ row: { inq: number[]; }; }' is not assignable to type 'Condition<ModelRow> | AndClause<ModelRow> | OrClause<ModelRow> | undefined'.
Type '{ row: { inq: number[]; }; }' is not assignable to type 'Condition<ModelRow>'.
Types of property 'row' are incompatible.
Type '{ inq: number[]; }' is not assignable to type 'PredicateComparison<number[]> | (number[] & string) | (number[] & number) | (number[] & false) | (number[] & true) | (number[] & Date) | undefined'.
Type '{ inq: number[]; }' is not assignable to type 'undefined'.ts(2345)*
型
2条答案
按热度按时间iszxjhcz1#
我得到了同样的问题,但与字符串.破解它与铸造到任何和自定义 Package .可能是它有可能以这种方式破解数字太.肮脏的解决方案
字符串
tpxzln5u2#
如果您使用的是Postgresql,请使用
ilike
过滤器字符串
inq
是一种过滤器运算符,通常用于非关系数据库,如MongoDB。ilike
是一种过滤运算符,通常用于PostgreSQL等关系数据库