session.run(加载 CSV)个问题
session.run(LOAD CSV) issues
当使用 LOAD CSV 函数和 session.run() 执行Neo4J 中的密码语句它没有 return 任何东西。已尝试删除 LOAD CSV,它在创建节点时工作得很好。
这是代码:
import { neo4jgraphql } from "neo4j-graphql-js";
import fs from "fs";
import path from "path";
const {createWriteStream} = require("fs");
const {GraphQLUpload} = require("apollo-server");
import {session} from "./index.js"
/*
* Check for GRAPHQL_SCHEMA environment variable to specify schema file
* fallback to schema.graphql if GRAPHQL_SCHEMA environment variable is not set
*/
const files = [];
export const typeDefs = fs
.readFileSync(
process.env.GRAPHQL_SCHEMA || path.join(__dirname, "schema.graphql")
)
.toString("utf-8");
export const resolvers = {
// Upload: GraphQLUpload,
Query: {
files: () => files
},
Mutation: {
uploadFile: async (_, {file}) => {
const {createReadStream, filename } = await file;
await new Promise(res =>
createReadStream()
.pipe(createWriteStream(path.join(__dirname, "./uploads", filename)))
.on("close", res)
);
session.run("LOAD CSV WITH HEADERS FROM 'file:///Connections.csv' AS csvLine CREATE(n)"); // This does not work with the LOAD CSV (Works with only CREATE(n))
return true;
}
}
};
该 LOAD CSV 命令只会每行调用一次 CREATE (n)
,这将创建一个没有标签或属性的节点。尝试将其更改为类似 CREATE (n:CsvNode) SET n.prop_1 = csvLine.header1
的内容(其中 header1
是 CSV 中的 headers 之一)并查看是否创建了标记为 :CsvNode 的节点。
当使用 LOAD CSV 函数和 session.run() 执行Neo4J 中的密码语句它没有 return 任何东西。已尝试删除 LOAD CSV,它在创建节点时工作得很好。
这是代码:
import { neo4jgraphql } from "neo4j-graphql-js";
import fs from "fs";
import path from "path";
const {createWriteStream} = require("fs");
const {GraphQLUpload} = require("apollo-server");
import {session} from "./index.js"
/*
* Check for GRAPHQL_SCHEMA environment variable to specify schema file
* fallback to schema.graphql if GRAPHQL_SCHEMA environment variable is not set
*/
const files = [];
export const typeDefs = fs
.readFileSync(
process.env.GRAPHQL_SCHEMA || path.join(__dirname, "schema.graphql")
)
.toString("utf-8");
export const resolvers = {
// Upload: GraphQLUpload,
Query: {
files: () => files
},
Mutation: {
uploadFile: async (_, {file}) => {
const {createReadStream, filename } = await file;
await new Promise(res =>
createReadStream()
.pipe(createWriteStream(path.join(__dirname, "./uploads", filename)))
.on("close", res)
);
session.run("LOAD CSV WITH HEADERS FROM 'file:///Connections.csv' AS csvLine CREATE(n)"); // This does not work with the LOAD CSV (Works with only CREATE(n))
return true;
}
}
};
该 LOAD CSV 命令只会每行调用一次 CREATE (n)
,这将创建一个没有标签或属性的节点。尝试将其更改为类似 CREATE (n:CsvNode) SET n.prop_1 = csvLine.header1
的内容(其中 header1
是 CSV 中的 headers 之一)并查看是否创建了标记为 :CsvNode 的节点。