图数据库可以查询"nodes that a given node has no relationship with"吗?
Can graph database query "nodes that a given node has no relationship with"?
我正在开发一款约会应用程序,用户可以在其中 "like" 或 "dislike" 其他用户进行配对。
可以想象,该应用程序最重要的查询是:
Give me a stack of nearby user profiles that I have NOT liked/disliked before
.
我尝试使用文档数据库 (Firestore) 来解决这个问题,但发现它根本不适合此类应用程序,因此我进入了对我来说很新鲜且令人着迷的图形数据库世界。
我理解图形数据库本质上通过追踪关系来检索数据,并首先建立关系-class 公民。我现在的问题是,如果我要获取的节点与给定节点 没有 关系怎么办?查询会是什么样子?谁能提供示例查询?
编辑:
- 添加 nearby
条件到查询语句
这绝对可以,这里是一个查询示例:
MATCH (me:Profile {name: "Chris"})
MATCH (other:Profile) WHERE NOT (other)-[:LIKES]->(me)
正如您在原始问题的评论中所述,在大型数据集上,它 可能 无法很好地扩展,也就是说您只使用一个匹配标准是非常罕见的,例如,要匹配的可能配置文件列表可以按以下方式分组:
- 地理位置
- 个人资料深度 2(谁喜欢我,然后找到他们喜欢的其他人,那些人喜欢我吗?)
- 共同兴趣
- 年龄段
- 肤色
- ...
我正在开发一款约会应用程序,用户可以在其中 "like" 或 "dislike" 其他用户进行配对。
可以想象,该应用程序最重要的查询是:
Give me a stack of nearby user profiles that I have NOT liked/disliked before
.
我尝试使用文档数据库 (Firestore) 来解决这个问题,但发现它根本不适合此类应用程序,因此我进入了对我来说很新鲜且令人着迷的图形数据库世界。
我理解图形数据库本质上通过追踪关系来检索数据,并首先建立关系-class 公民。我现在的问题是,如果我要获取的节点与给定节点 没有 关系怎么办?查询会是什么样子?谁能提供示例查询?
编辑:
- 添加 nearby
条件到查询语句
这绝对可以,这里是一个查询示例:
MATCH (me:Profile {name: "Chris"})
MATCH (other:Profile) WHERE NOT (other)-[:LIKES]->(me)
正如您在原始问题的评论中所述,在大型数据集上,它 可能 无法很好地扩展,也就是说您只使用一个匹配标准是非常罕见的,例如,要匹配的可能配置文件列表可以按以下方式分组:
- 地理位置
- 个人资料深度 2(谁喜欢我,然后找到他们喜欢的其他人,那些人喜欢我吗?)
- 共同兴趣
- 年龄段
- 肤色
- ...