Neo4j的手册在解释Node,Relationship,Label等术语的含义方面表现非常出色。
然而,Cypher的真正的词汇表似乎也包含了一些难以捉摸的术语。
例如,本手册的第3.3.15.1节说"列表和路径是Cypher"中的关键概念。很好,但Cypher的列表是什么?我几乎放弃了试图找到关键概念的定义"。
同样,Cypher参考卡提到" Cypher也支持地图和集合"。在其他地方,人们可以发现Cypher也可以使用词典"。
毋庸置疑,我对如何在Cypher中发现和/或使用它们一无所知。
非常感谢一些插图。
感谢。
答案 0 :(得分:0)
根据维基百科:
https://en.wikipedia.org/wiki/List_(abstract_data_type):列表(或序列,集合)是表示可数数量的有序值的数据类型。
https://en.wikipedia.org/wiki/List_(abstract_data_type):地图(或字典)是由(键,值)对的集合组成的数据类型。
在Cypher:
RETURN ['Benoit', 'Simard'] AS list
RETURN { firstname:'Benoit', lastname:'Simard'} AS map
干杯
答案 1 :(得分:0)
文档中有一节Composite types:
3.2.1.3。复合类型
- ✓可以从Cypher查询中返回
- ✓可用作参数
- ❏无法存储为属性
- ✓可以用Cypher文字构建
复合类型包括:
- 列表是异构的,有序的值集合,每个值都具有任何属性,结构或复合类型。
地图是(key,value)对的异构,无序集合,其中:
- 键是String
- 该值具有任何属性,结构或复合类型
您可能也对openCypher的开发感兴趣。 openCypher project的目标之一是定义Cypher语言的概念。正如其主页上所述:
openCypher项目旨在提供业界最广泛采用的图形数据库查询语言的完整和开放的规范:Cypher。
目前,openCypher是一项正在进行中的工作。它有draft document on the Property Graph Model,它本身不会详细讨论列表/地图,但会引用CIP2015-06-16 - Public Type System and Type Annotations文档,这是一个已接受的Cypher Improvement Proposal。它有一个关于“容器类型”的部分,它定义了列表和地图在Cypher中的工作方式。
我没有在Neo4j核心文档中看到“词典”这个词。可以在驱动程序周围提及,因为某些语言,例如Python,将此术语用于地图。
(免责声明:我是openCypher Implementers Group次会议的常客。)