0

我正在努力使用占位符格式化 InfluxDB 查询。

在这里,我使用多个占位符进行查询。这些值在占位符对象中定义,如下所示,

let query = `SELECT grid_ref_x, grid_ref_y, label FROM position
WHERE "label" = $<label> and time >= $<from> - $<interval>`;

const placeholders = {label: 'person', from: 'now()', interval: '5m'};
const resp = await influx.query(query, { placeholders });

一旦发送,一个error 400 - error parsing query: empty bound parameter

在错误中,我可以看到 GET 请求,其中似乎 Influx 库已正确格式化“参数”下的占位符。

/query?p=root&u=root&db=heatmap&epoch=&q=SELECT grid_ref_x, grid_ref_y, label FROM position WHERE label = $<label> and time >= $<from> - $<interval>&rp=&params={"from":"now()","interval":"5h","label":"person"}

如何正确格式化我的查询?

4

1 回答 1

1

你试过改变

let query = `SELECT grid_ref_x, grid_ref_y, label FROM position
WHERE "label" = $<label> and time >= $<from> - $<interval>`;

let query = `SELECT grid_ref_x, grid_ref_y, label FROM position
WHERE "label" = $label and time >= $from - $interval`;

不同之处在于您使用$variable_name而不是$<variable_name>引用占位符或绑定参数。假设您使用的是 node_influx,您可以删除标签上的双引号,它仍然可以工作。

我用这个 PR 作为参考https://github.com/node-influx/node-influx/issues/587

于 2021-12-04T09:59:38.087 回答