Neo4j 图中的 Cypher 查询

问题描述

我在 Neo4j 中有以下图表:
图书:book_id、isbn、language_code、title、image_url、small_image_url、avg_ratings、
作者:姓名,
读者:id、
有 3 个关系:
(Reader)-[:Rated]->(Book) 具有属性 {rating: value},
(读者)-[:推荐]->(书籍)
(作者)-[:Write]->(书籍)

我想通过 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 子句,直到您确定它按照您的意愿行事。我没有你的数据库,所以我无法测试这个,但也许这可以作为第一次尝试。