【发布时间】:2016-04-20 10:49:42
【问题描述】:
我正在尝试从我的 Neo4j 数据库中获得完全独特的结果。
我有一个包含各种电影的数据库,用户可以观看电影,并且电影可以彼此相似。我正在尝试获取与用户已观看的电影相关的完全唯一的电影列表,并过滤掉已观看的电影。
据我所知,这应该可以通过使用 RETURN DISTINCT m 来实现,但如果您看过多部与一部电影相似的电影,这将不起作用。
所以为了简单起见:
用户观看了电影A、B 和C。所有这些电影都类似于电影D
现在,它返回:D, D, D。
我尝试了DISTINCT movie 和collect(DISTINCT m) 都没有成功
我使用的完整查询是:
MATCH (u:user {name:'" + user + "'})-[:watched]->()-[r:is_similar_to]-(m)
WHERE NOT (u)-[:watched]-(m)
RETURN collect(DISTINCT m), r ORDER BY r.rated
希望大家帮帮我
谢谢!
【问题讨论】:
标签: database neo4j cypher unique