我有一个简单的postgres ltree查询
select * from data_objects WHERE path ~ 'root.*{1}';
我想在sequelize中实现这个,但是〜运算符没有映射。
是否可以覆盖映射?或者我是否必须使用原始SQL查询?
答案 0 :(得分:1)
如果您使用sequelize将查询作为原始查询运行,它应该可以工作:
sequelize.query("select * from data_objects WHERE path ~ 'root.*{1}'",
{ type: sequelize.QueryTypes.SELECT})
.then(users => {
})
有关详细信息,请查看documentation。请注意,通过使用本机查询,您将Postgres的硬依赖性引入到您的节点代码中。您是否选择这样做取决于您。
也许您也可以使用LIKE
修改您的查询:
select * from data_objects WHERE LOWER(path) LIKE 'root%{1}'
答案 1 :(得分:1)
找到解决方案:
params.path = {
$regexp:'root.*{1}'
};
翻译为
where "path" ~ 'root.*{1}'
我没见过$ regexp运算符