我有许多不同类型的节点,我指的是具有不同属性的节点。例如,我有许多节点,他们拥有的只是fileName和uploadDate的属性。如果我想检查所有文件名,我只需要做
START n=node(*) WHERE has(n.File) RETURN n;
这是最佳做法(即查询扁平数据库)。谢谢!
答案 0 :(得分:4)
您的查询扫描所有节点,随着数据集的增长,这将变慢。
为了识别某种类型的节点,有两种常见的方法:
使用描述您的类型的值设置名为“type”(或“_type_”f.e。如果您希望将其标记为系统属性)的属性,例如'文件'。
然后你可以通过这样的索引查找节点:
start n=node:node_auto_index(type='File') return n;
将某种类型的节点连接到“类型”节点并查询关系:
start type_node=node:node_auto_index(name='File')
match type_node<-[:IS_A]-file
return file;
(此页面上的啤酒图http://www.neo4j.org/learn/try就是一个例子。)