首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JSON -从嵌套的Neo4j文件和列表中创建节点

JSON -从嵌套的Neo4j文件和列表中创建节点
EN

Stack Overflow用户
提问于 2019-08-07 03:16:47
回答 1查看 774关注 0票数 0

我是Neo4j新手,尤其是Cypher query。我正在尝试为JSON文件中的值创建节点,因为您可以看到它的嵌套格式。使用MERGE是因为我需要像'Adam Smith‘这样的值作为下面嵌套列表中的单个节点。当“组织”不是嵌套/列表格式时,它显然工作得很好。请看下面我的试用和评论。真的很感谢你的帮助!

示例data.json

代码语言:javascript
运行
复制
[   {   'organization': 'MIT',
        'student_names': ['Adam Smith'],
        'unique_id': 'ABC123'},
    {   'organization': 'Harvard',
        'student_names': ['Adam Smith', 'Cate Scott'],
        'unique_id': 'ABC124'},
    {   'organization': 'Harvard',
        'student_names': ['Mandy T.', 'Bob Smith'],
        'unique_id': 'ABC125'}]

为organization - works创建2个节点

代码语言:javascript
运行
复制
CALL apoc.load.json('file:///data.json') YIELD value as v 
MERGE (o:org {name: v.organization})
// Added 2 labels, created 2 nodes, set 2 properties, completed after 5 ms.

不起作用

代码语言:javascript
运行
复制
CALL apoc.load.json('file:///data.json') YIELD value as v 
UNWIND v.student_names as s
MERGE(st:student {name: s.student_names})

错误:Neo.ClientError.Statement.TypeError: Type mismatch: expected a map but was String("Adam Smith")

寻找一个像这样解开的图。我想我可以自己定义关系,我只是想看看如何开始创建节点。

代码语言:javascript
运行
复制
ABC123 --> MIT --> Adam Smith 
ABC124 --> Harvard --> Adam Smith
ABC124 --> Harvard --> Cate Scott
ABC125 --> Harvard --> Mandy T.
ABC125 --> Harvard --> Bob Smith
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 03:22:02

在第二个查询中,s已经是一个学生的名字,所以只需这样做:

代码语言:javascript
运行
复制
CALL apoc.load.json('file:///data.json') YIELD value
UNWIND value.student_names AS s
MERGE(st:student {name: s})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57382640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档