查询
.query()
实例 方法
执行自定义 SurrealQL 查询。
query( surql: string | object, vars?: { [p: string]: unknown }, options?: ClientRpcOptions,): Promise<unknown[]>;
参数
surql
SurrealQL 字符串或预先准备好的查询。
vars
在执行 SurrealQL 时传递的变量。请注意,变量名不能以美元符号开头。
options
PRC 请求选项。
返回值
返回一个 Promise
对象,该对象解析为 SurrealQL 执行结果的数组。如果一个或多个语句失败,则会以包含错误消息的 QueryFailedError
拒绝该对象。
如果此方法被拒绝,则无法获得执行结果。如果需要手动进行错误处理,可以使用 .queryRaw()
。
示例
以下示例演示了成功执行查询:
import { Surreal } from "@tai-kun/surrealdb";
const db = new Surreal();await db.connect("ws://localhost:8000");
const results = await db.query(` CREATE ONLY user:foo CONTENT { age: 42 };`);console.log(results);// [{// id: Thing { tb: 'user', id: 'foo' },// age: 42// }]
await db.close();
以下示例中,一个语句失败,因此查询将被 QueryFailedError
拒绝:
import { Surreal } from "@tai-kun/surrealdb";
const db = new Surreal();await db.connect("ws://localhost:8000");
const results = await db.query(` CREATE ONLY user:foo CONTENT { age: 42 }; OUTPUT 42;`); // throws QueryFailedError: Query failed with 1 error(s)
以下示例演示了如何执行预先准备好的查询:
import { surql, Surreal, Thing } from "@tai-kun/surrealdb";
const CreateUserQuery = surql` CREATE ONLY user:foo CONTENT { age: 42 };`.returns<[{ id: Thing<"user">, age: number }]>()
const db = new Surreal();await db.connect("ws://localhost:8000");
const results = await db.query(CreateUserQuery); // ^? const results: [{ id: Thing<"user">, age: number }]
await db.close();
.queryRaw()
实例 方法
执行自定义 SurrealQL 查询。
queryRaw( surql: string | object, vars?: { [p: string]: unknown }, options?: ClientRpcOptions,): Promise<QueryResult[]>;
参数
surql
SurrealQL 字符串或预先准备好的查询。
vars
在执行 SurrealQL 时传递的变量。变量名不能以美元符号开头。
options
PRC 请求选项。
返回值
返回一个 Promise
对象,该对象解析为 SurrealQL 执行结果的数组。
type QueryResult = { status: "OK"; time: string; result: unknown;} | { status: "ERR"; time: string; result: string;};