我有一个简单的 postgres ltree 查询
select * from data_objects WHERE path ~ 'root.*{1}';
我想在 sequelize 中实现它,但是 ~ 运算符没有映射。
是否可以覆盖映射?还是我必须使用原始 sql 查询?
我有一个简单的 postgres ltree 查询
select * from data_objects WHERE path ~ 'root.*{1}';
我想在 sequelize 中实现它,但是 ~ 运算符没有映射。
是否可以覆盖映射?还是我必须使用原始 sql 查询?
找到了解决方案:
params.path = {
$regexp:'root.*{1}'
};
翻译为
where "path" ~ 'root.*{1}'
我没有看到 $regexp 运算符
如果您使用 sequelize 将查询作为原始查询运行,它应该可以工作:
sequelize.query("select * from data_objects WHERE path ~ 'root.*{1}'",
{ type: sequelize.QueryTypes.SELECT})
.then(users => {
})
查看文档以获取更多信息。请注意,通过使用本机查询,您会将对 Postgres 的硬依赖引入您的 Node 代码中。你是否选择这样做取决于你。
也许您还可以使用以下命令重新表述您的查询LIKE
:
select * from data_objects WHERE LOWER(path) LIKE 'root%{1}'