我正在开发一个约会应用程序,用户可以在其中“喜欢”或“不喜欢”其他用户并进行匹配。可以想象,该应用程序最重要的查询是:Give me a stack of nearby user profiles that I have NOT liked/disliked before
。
[我尝试使用文档数据库(Firestore)进行处理,并发现它根本不适合此类应用程序,因此落入了图数据库世界,这对我来说是新的和令人着迷的。
我了解,图数据库本质上通过跟踪关系来检索数据,并使关系成为第一流的公民。现在我的问题是,如果我尝试获取的节点是那些具有没有给定节点的关系的节点,该怎么办?查询是什么样的?任何人都可以提供示例查询吗?
编辑:-向查询语句添加nearby
条件
这绝对有可能,这是一个查询示例:
MATCH (me:Profile {name: "Chris"})
MATCH (other:Profile) WHERE NOT (other)-[:LIKES]->(me)
正如您原始问题的评论中所述,在大型数据集上,它[]可能无法很好地扩展,这表示仅使用一个条件进行匹配(例如,可能的配置文件列表)是非常罕见的匹配来源可以按以下分组: