1

让我们假设以下实体:

“用户”有一个“博客”,该博客有“条目”。一个博客可以有多个用户,一个条目具有三个属性,用户、博客和一个字符串条目。我想编写一个密码查询,返回特定博客和用户的所有条目。我同时拥有用户节点 ID 和博客 ID。我可以使用用户 ID 来启动节点,但是如何使用博客 ID?我无权访问任何其他唯一的东西,因此正在使用节点 ID。

start user=(1) match (user)->[:BLOG]-(blog)->[:ENTRY](entry) where entry.blog = blogId return entry

建议将不胜感激。

4

2 回答 2

2

您还可以使用参数来传递博客和用户 ID。

START user=({userId}), blog=({blogId}) MATCH user-[:BLOG]->blog-[:ENTRY]->entry RETURN entry

Map然后使用包含的参数执行密码查询userId=1,blogId=2

如果您有 blog-id,则不必传入用户。由于您没有指定用户和条目之间的关系(如AUTHOR),它将返回博客的所有条目,这可能不是您想要的。

START user=({userId}), blog=({blogId}) MATCH blog-[:ENTRY]->entry<-[:AUTHOR]-user RETURN entry
于 2011-11-07T00:37:58.043 回答
0

起初你的密码查询看起来不对,可能不是稳定的版本?

start user=(1) match (user)->[:BLOG]-(blog)->[:ENTRY](entry) where entry.blog = blogId return entry

如果你有用户 ID 和博客 ID,我想你可以试试这个:

START user=(userId), blog=(blogId) MATCH user-[:BLOG]->blog-[:ENTRY]->entry RETURN entry

我认为,在图形数据库中使用外键是不必要的。

于 2011-10-25T07:42:41.157 回答