neo4j 图中的 Cypher 查询
Cypher query in a neo4j graph
我在 Neo4j 中有以下图表:
图书: book_id, isbn, language_code, 书名, image_url, small_image_url, avg_ratings,
作者:姓名,
Reader: id,
有 3 个关系:
(Reader)-[:Rated]->(Book) 具有 属性 {rating: value},
(Reader)-[:推荐]->(书),
(作者)-[:写]->(书)。
我想在 Cypher 中通过查询找到最受推荐的书。
我写了一个查询,但我不太确定,因为我不熟悉使用 count() 和 max() 运算符。
这是我的尝试:
MATCH (r:Reader) - [rel:recommend] -> (b:Book)
RETURN count(rel), b
ORDER BY count
LIMIT 1
我会试试这个:
MATCH (:Reader) - [:recommend] -> (b:Book)
RETURN
count(1) AS `Number of Recommendations`,
b AS `Book`
ORDER BY `Number of Recommendations` DESC
LIMIT 1
我会放弃 LIMIT
子句,直到您确定它正在执行您想要的操作。我没有你的数据库,所以我不能测试这个,但也许这可以作为第一次尝试。
我在 Neo4j 中有以下图表:
图书: book_id, isbn, language_code, 书名, image_url, small_image_url, avg_ratings,
作者:姓名,
Reader: id,
有 3 个关系:
(Reader)-[:Rated]->(Book) 具有 属性 {rating: value},
(Reader)-[:推荐]->(书),
(作者)-[:写]->(书)。
我想在 Cypher 中通过查询找到最受推荐的书。
我写了一个查询,但我不太确定,因为我不熟悉使用 count() 和 max() 运算符。
这是我的尝试:
MATCH (r:Reader) - [rel:recommend] -> (b:Book)
RETURN count(rel), b
ORDER BY count
LIMIT 1
我会试试这个:
MATCH (:Reader) - [:recommend] -> (b:Book)
RETURN
count(1) AS `Number of Recommendations`,
b AS `Book`
ORDER BY `Number of Recommendations` DESC
LIMIT 1
我会放弃 LIMIT
子句,直到您确定它正在执行您想要的操作。我没有你的数据库,所以我不能测试这个,但也许这可以作为第一次尝试。