让我们假设以下实体:
'用户'有'博客',博客有'条目'。博客可以有多个用户,条目有三个属性,用户,博客和字符串条目。我想编写一个cypher查询,返回特定博客和用户的所有条目。我有用户节点ID和博客ID。我可以使用用户ID启动节点但是如何使用博客ID?我无法访问任何其他唯一的东西,因此正在使用节点ID。
start user=(1) match (user)->[:BLOG]-(blog)->[:ENTRY](entry) where entry.blog = blogId return entry
建议将不胜感激。
答案 0 :(得分:2)
您还可以使用参数传递博客和用户ID。
START user=({userId}), blog=({blogId}) MATCH user-[:BLOG]->blog-[:ENTRY]->entry RETURN entry
然后使用包含Map
的参数userId=1,blogId=2
执行cypher查询。
如果您拥有blog-id,则无需传入用户。由于您没有指定用户和条目之间的关系(如AUTHOR
),它将返回博客的所有条目,这可能不是您想要的。
START user=({userId}), blog=({blogId}) MATCH blog-[:ENTRY]->entry<-[:AUTHOR]-user RETURN entry
答案 1 :(得分: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
我认为,在使用外键的图形数据库中是不必要的。