0

我有许多不同类型的节点,我的意思是节点上有不同的属性。例如,我有许多节点,它们只有一个 fileName 和 uploadDate 的属性。如果我想检查所有文件名,我只需要做

START n=node(*) WHERE has(n.File) RETURN n;

这是最佳实践吗(即查询扁平化的数据库)。谢谢!

4

1 回答 1

4

您的查询会扫描所有节点,随着数据集的增长,这将变得更慢。

为了识别某种类型的节点,有两种常见的方法:

类型属性

使用描述您的类型的值设置一个名为“type”的属性(或“_type_”fe,如果您想将其标记为系统属性),例如“文件”。

然后你可以通过这样的索引查找节点:

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上的啤酒图就是一个例子。)

于 2013-03-08T16:55:53.580 回答