图形数据库可以查询“与给定节点没有关系的节点”吗?

时间:2019-11-27 13:32:25

标签: neo4j graph-databases arangodb amazon-neptune

我正在开发一个约会应用程序,用户可以“喜欢”或“不喜欢”其他用户并进行匹配。 您可以想象,该应用程序最重要的查询是: Give me a stack of nearby user profiles that I have NOT liked/disliked before

我尝试使用文档数据库(Firestore)进行处理,并发现它根本不适合此类应用程序,因此落入了图数据库世界,这对我来说是新鲜而有趣的。

我了解,图数据库本质上通过跟踪关系来检索数据,并使关系成为第一流的公民。现在我的问题是,如果我要获取的节点是那些与给定节点没有任何关联的节点,该怎么办?查询是什么样的?任何人都可以提供示例查询吗?

编辑: -在查询语句中添加了nearby条条件

1 个答案:

答案 0 :(得分:0)

这绝对有可能,这是一个查询示例:

MATCH (me:Profile {name: "Chris"})
MATCH (other:Profile) WHERE NOT (other)-[:LIKES]->(me)

如您原始问题的评论所述,在大型数据集上,可能无法很好地扩展,这表示仅使用一个条件进行匹配是非常罕见的,例如,匹配的可能配置文件列表可以按以下方式分组:

  • 地理位置
  • 深度剖析2(谁喜欢我,然后找到他们喜欢的其他人,这些人喜欢我吗?)
  • 共同利益
  • 年龄组
  • 肤色
  • ...