【发布时间】:2019-11-27 13:32:25
【问题描述】:
我正在开发一个约会应用程序,用户可以在其中“喜欢”或“不喜欢”其他用户并进行匹配。
正如您可以想象的那样,该应用程序最重要的查询将是:
Give me a stack of nearby user profiles that I have NOT liked/disliked before.
我尝试使用文档数据库 (Firestore) 来解决这个问题,并认为它根本不适合此类应用程序,因此进入了图形数据库世界,这对我来说是新的和令人着迷的。
我了解,从本质上讲,图形数据库通过跟踪关系来检索数据,并使关系成为一等公民。我现在的问题是,如果我要获取的节点是那些与给定节点没有关系的节点怎么办?查询会是什么样子?谁能提供一个示例查询?
编辑:
- 在查询语句中添加nearby 条件
【问题讨论】:
-
正如您在上一段中所说,您要解决的问题的本质并不是真正的“图表”。您似乎想通过获取数据库中的所有节点并从该列表中减去当前用户和当前链接到当前用户的所有节点来创建“可能”列表。如果没有其他一些分组或排序功能,例如“仅在过去 7 天内到达的节点”,这可能无法很好地扩展。
-
嗨@djhallx,感谢您的回复。我不确定我是否理解正确,但在约会应用程序的场景中,我相信分组可能是按地理位置进行的,即用户只会对地理位置靠近他/她的那些“未链接”用户感兴趣。这是否使其更具可扩展性?
-
考虑以下...当用户加入约会应用社区时,他们会陈述他们的兴趣。兴趣被实现为图中的节点,新用户将链接到这些兴趣节点。然后,当现有用户登录到他们的帐户并说“向我展示新的可能性”时,您执行一个图形查询,显示从他们自己通过所有兴趣节点到“加入日期”比“加入日期”更新的所有其他人员节点的所有路径上次运行查询的时间。这使它成为一个图形查询并且非常容易做到。
标签: neo4j graph-databases arangodb amazon-neptune