密码:查找尚未被特定用户评级的电影 [英] Cypher: Finding movies that haven't been rated yet by particular user

查看:67
本文介绍了密码:查找尚未被特定用户评级的电影的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我的Neo4J数据库中有3部电影:

CREATE (interpreter:Movie {title: 'The Interpreter', year : 2005})
CREATE (dogville:Movie {title: 'Dogville', year : 2003})
CREATE (railwayMan:Movie {title: 'The Railway Man', year : 2013})

也有用户:

CREATE (maciej:Person {name: 'Maciej Ziarko', birthYear: 1989})

谁给电影评分:

CREATE (maciej)-[:RATED {stars : 4, comment : "I liked that movie!" }]->(interpreter);

使用Cypher可以轻松找到特定用户评分的电影

MATCH (person:Person)-[:RATED]->(movie:Movie)
WHERE person.name = 'Maciej Ziarko'
RETURN movie.title

结果:

+-------------------+
| movie.title       |
+-------------------+
| "The Interpreter" |
+-------------------+
1 row

但是如何找到尚未被特定用户评级的电影?

解决方案

您可能会使用类似的东西:

MATCH (m:Movie) WHERE NOT (m)<-[:RATED]-() return m.title

WHERE中,您可以使用NOT过滤不存在​​的路径,请参见

It's easy to find movies rated by particular user using Cypher

MATCH (person:Person)-[:RATED]->(movie:Movie)
WHERE person.name = 'Maciej Ziarko'
RETURN movie.title

Result:

+-------------------+
| movie.title       |
+-------------------+
| "The Interpreter" |
+-------------------+
1 row

But how can I find movies NOT yet rated by particular user?

You might use something like:

MATCH (m:Movie) WHERE NOT (m)<-[:RATED]-() return m.title

In WHERE you can filter for non existing paths using NOT, see http://docs.neo4j.org/chunked/milestone/query-where.html#where-filter-on-patterns-using-not

这篇关于密码:查找尚未被特定用户评级的电影的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆