Skip to Content
API 参考Node.js APIQuery Execution Results

模块 neug.query_result

Neug 结果模块。

QueryResult 对象

class QueryResult

QueryResult 表示 Cypher 查询的结果。它支持 JavaScript 迭代器协议(for...of),并提供用于遍历结果的方法。

它提供以下用于遍历结果的方法: - hasNext():如果还有更多结果可供遍历,则返回 true。 - getNext():以数组形式返回下一个结果。 - getAt(index):返回指定索引位置的结果。 - length():返回结果的总数。 - columnNames():以字符串形式返回投影列的名称。 - getProfileMetrics():返回结构化的 PROFILEEXPLAIN 指标。

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