模块 neug.query_result
Neug 结果模块。
QueryResult 对象
class QueryResultQueryResult 表示 Cypher 查询的结果。它支持 JavaScript 迭代器协议(for...of),并提供用于遍历结果的方法。
它提供以下用于遍历结果的方法:
- hasNext():如果还有更多结果可供遍历,则返回 true。
- getNext():以数组形式返回下一个结果。
- getAt(index):返回指定索引位置的结果。
- length():返回结果的总数。
- columnNames():以字符串形式返回投影列的名称。
- getProfileMetrics():返回结构化的 PROFILE 或 EXPLAIN 指标。
const { Database } = require('neug');
const db = new Database({ databasePath: '/tmp/test.db', mode: 'r' });
const conn = db.connect();
const result = conn.execute('MATCH (n) RETURN n');
for (const row of result) {
console.log(row);
}
构造函数
constructor(nativeResult)初始化 QueryResult。
- 参数:
nativeResult(object) 查询引擎返回的查询结果。它是一个 C++ 对象,通过原生绑定导出至 Node.js。
hasNext
hasNext() -> boolean检查是否还有更多可用结果。
- 返回:
- boolean 如果还有更多结果则返回 True,否则返回 False。
getNext
getNext() -> Array获取下一行结果。
- 返回值:
- Array 下一行数据,以值数组形式返回。
getAt
getAt(index) -> Array获取指定索引处的结果。
-
参数:
index(number) 要获取的结果的索引。支持负数索引(例如,-1表示最后一行)。
-
返回:
- Array 指定索引处的行。
-
抛出:
- RangeError 如果索引超出范围(在解析负数索引之后)。
length
length() -> number获取结果总数。
- 返回:
- number 结果的数量。
columnNames
columnNames() -> string[]以字符串数组的形式返回投影的列名。
statusCode
statusCode() -> number获取查询结果的状态码。
- 返回值:
- number 0 表示成功,非 0 表示错误。
statusMessage
statusMessage() -> string获取查询结果的状态消息。
- 返回:
- string 状态消息。
getBoltResponse
getBoltResponse() -> string获取 Bolt 响应格式的结果。
- 返回:
- string Bolt 响应格式的结果。
close
close()关闭查询结果并释放资源。
getProfileMetrics
getProfileMetrics() -> Object以 JavaScript 对象形式返回详细的 PROFILE 或 EXPLAIN 指标:
{
total_elapsed_ms: number,
total_output_rows: number,
operators: [
{
operator_id: number,
parent_id: number,
operator_name: string,
elapsed_ms: number,
output_rows: number,
child_ids: number[],
},
],
}当无可获取的 profile 结果时,返回一个空对象。
[Symbol.iterator]
[Symbol.iterator]() -> Iterator使 QueryResult 可通过 for...of 循环进行迭代。每次迭代都会以值数组的形式返回一行数据。
const result = conn.execute('MATCH (p:Person) RETURN p.name, p.age');
for (const row of result) {
console.log(`${row[0]}: ${row[1]}`);
}- 产出:
- Array 每行数据以列值数组的形式返回。
Last updated on