本节介绍用于导出点、边的方法。
export()
导出图中的点或边。
参数
exportRequest: ExportRequest
:导出请求的配置,包括dbType
、schema
、selectProperties
和graph
。listener: RequestType.ExportListener
:导出数据时执行的回调函数。
返回值
- 无
// Exports 'account' nodes in the graph 'miniCircle'
const exportRequest = new ExportRequest();
exportRequest.setDbType(DBType.DBNODE);
exportRequest.setSchema("account");
exportRequest.setGraph("miniCircle");
exportRequest.addSelectProperties("_id");
exportRequest.addSelectProperties("name");
exportRequest.addSelectProperties("year");
exportRequest.setLimit(100);
const allNodes: any[] = [];
await conn.export(exportRequest, {
stream: {
onStart: () => {
console.log("Export started");
},
onData: async (data) => {
allNodes.push(...data);
},
onEnd: () => {
console.log("Export completed. Total nodes:", allNodes.length);
if (allNodes.length === 0) {
console.log("No data received.");
return;
}
try {
const csv = parse(allNodes);
const filePath = "./account_nodes.csv";
fs.writeFileSync(filePath, csv, "utf8");
console.log(`CSV export completed: ${filePath}`);
} catch (err) {
console.error("Failed to write a row to CSV:", err);
}
},
},
});
Export started
Export finished. Total nodes: 111
CSV export completed: ./account_nodes.csv
导出文件account_nodes.csv
将保存到与执行文件相同的目录中。
完整示例
import { UltipaDriver } from "@ultipa-graph/ultipa-driver";
import { ULTIPA } from "@ultipa-graph/ultipa-driver/dist/types";
import {
DBType,
ExportRequest,
} from "@ultipa-graph/ultipa-driver/src/proto/ultipa_pb";
import * as fs from "fs";
import { parse } from "json2csv";
let sdkUsage = async () => {
// URI example: ultipaConfig.hosts: ["mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
const ultipaConfig: ULTIPA.UltipaConfig = {
hosts: ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"],
username: "<username>",
password: "<password>"
};
const conn = new UltipaDriver(ultipaConfig);
const isSuccess = await conn.test();
console.log(`Connection succeeds: ${isSuccess}`);
// Exports 'account' nodes in the graph 'miniCircle'
const exportRequest = new ExportRequest();
exportRequest.setDbType(DBType.DBNODE);
exportRequest.setSchema("account");
exportRequest.setGraph("miniCircle");
exportRequest.addSelectProperties("_id");
exportRequest.addSelectProperties("name");
exportRequest.addSelectProperties("year");
exportRequest.setLimit(100);
const allNodes: any[] = [];
await conn.export(exportRequest, {
stream: {
onStart: () => {
console.log("Export started");
},
onData: async (data) => {
allNodes.push(...data);
},
onEnd: () => {
console.log("Export completed. Total nodes:", allNodes.length);
if (allNodes.length === 0) {
console.log("No data received.");
return;
}
try {
const csv = parse(allNodes);
const filePath = "./account_nodes.csv";
fs.writeFileSync(filePath, csv, "utf8");
console.log(`CSV export completed: ${filePath}`);
} catch (err) {
console.error("Failed to write a row to CSV:", err);
}
},
},
});
};
sdkUsage().catch(console.error);