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