我正在构建一个连接到 NEO4J 实例的 REST API。我使用 koa-neo4j 库作为基础(https://github.com/assister-ai/koa-neo4j-starter-kit)。我是所有这些技术的初学者,但感谢这个论坛的一些帮助,我的基本功能正常工作。例如,下面的代码允许我创建一个带有标签“metric”的新节点并设置名称和 dateAdded 属性。
网址:
/metric?metricName=Test&dateAdded=2/21/2017
index.js
app.defineAPI({
method: 'POST',
route: '/api/v1/imm/metric',
cypherQueryFile: './src/api/v1/imm/metric/createMetric.cyp'
});
createMetric.cyp"
CREATE (n:metric {
name: $metricName,
dateAdded: $dateAdded
})
return ID(n) as id
但是,我很难知道如何处理更复杂的示例。当我不知道预先创建一个新节点时会添加多少属性或者我想在单个 post 语句中创建多个节点时,我该如何处理这种情况。理想情况下,我希望能够将 JSON 之类的东西作为 POST 的一部分传递,其中包含我想要创建的所有节点、标签和属性。这样的事情可能吗?我尝试使用下面的 Cypher 查询并在 POST 正文中传递一个 JSON 字符串,但它不起作用。
UNWIND $props AS properties
CREATE (n:metric)
SET n = properties
RETURN n
我最好切换到 Neo4j Rest API 而不是 BOLT 协议和 KOA-NEO4J 框架。根据我的研究,我认为使用 BOLT 会更好,但我希望有一个 Rest API 作为我的前端和后端之间的中间层,所以如果从长远来看这会更容易,我愿意改变。
谢谢您的帮助!