查找点
// 通过参数查找点
let result = await client.searchNodes({
filter: `{ age > 100 }`, // node(<>) 过滤条件
limit: 10,
return: "name, age" // 返回的点携带属性 name、age
})
// 通过 uql 查找点
let result = await client.uql(`find().nodes({ age > 100 }) as result return result{*} limit 10`)
查询边
// 通过参数查找边
let result = await client.searchEdges({
filter: `{ type in [1, 3, 5] }`, // edge(<>) 过滤条件
limit: 10,
return: "*" // 返回的边携带所有属性
})
// 通过 uql 查找边
let result = await client.uql(`find().edges({ type in [1, 3, 5] }) as result return result{*} limit 10`)
AB 路径查询
// 通过参数进行 AB 路径查询
let result = await client.searchAb({
src: "U001",
dest: "U002",
depth: 3,
limit: 5,
return: "*"
})
// 通过 uql 进行 AB 路径查询
let result = await client.uql(`ab().src({_id == 'U001'}).dest({_id == 'U002'}).depth(:3) as paths return paths{*} limit 5`)
Khop 查询
// 通过参数进行 khop 查询
let result = await client.searchKhop({
src: "U001",
edgeFilter: `{ @own }`,
depth: 3,
limit: 5,
return: "*"
})
// 通过 uql 进行 khop 查询
let result = await client.uql(`
khop().src({_id == 'U001'}).depth(3).edge_filter({ @own })
as result return result{*} limit 5
`)
自动展开
// 通过参数进行自动展开
let result = await client.spread({
src: "U001",
depth: 3,
limit: 100,
nodeFilter: `{@card}`,
edgeFilter: `{@transaction || @card}`,
direction: "right",
return: "*"
})
// 通过 uql 进行自动展开
let result = await client.uql(`
spread().src({_id == 'U001'}).depth(3).node_filter({@card})
.edge_filter({@transaction || @card}).direction(right) as result
return result{*} limit 100
`)
自动组网
// 通过参数进行自动组网
let result = await client.searchAutoNet({
src: `{ _id == "U001"}`,
depth: 3,
nodeFilter: `{@card}`,
edgeFilter: `{@transaction || @card}`,
})
// 通过 uql 进行自动组网
let result = await client.uql(`
autonet().src({_id in ['U001','U002']}).dest({_id in ['U003','U004']}).depth(:5)
as path return path limit 1
`)
模板查询
// 通过 uql 进行模板查询
let result = await client.uql(`
n({_id == 'U001'}).re({@own}).n({@card}).re({@transaction}).n({@card}).le({@own}).n({_id == 'U002'})
as paths return paths
`)