我有一个像
这样的查询MATCH (first:Book {ISBN: {ISBN}})-[:IN]-(category:BookCategory)-[:IN]-(books:Book)
RETURN *
基本上它通过其ISBN(在参数中提供)获得一本书,找到它所在的类别,并在该类别中找到其他书籍。
我希望它只返回1 :BookCategory
,但在该类别中无限制的书籍。例如,战争与和平分类在 Classics 和 战争小说下。在战争与和平上运行此查询将返回战争与和平,经典,战争小说以及所有书籍两个类别。我希望返回 Classics 或 战争小说中的所有书籍(我不关心哪些)和 Classics < / em> 或 战争小说本身。结果可能如下:
==================================================
first | category | books |
===============|==========|=======================
War and Peace | Classics | Old Yeller |
===============|==========|=======================
| Anne of Green Gables |
|=======================
| ... |
简而言之,我想要一种方法来limit
一些变量但不是其他变量。谢谢!
答案 0 :(得分:1)
您可以在类别级别限制查询,然后继续:
MATCH (first:Book {ISBN: {ISBN}})-[:IN]-(category:BookCategory)
WITH first, category
LIMIT 1
MATCH (category)-[:IN]-(books:Book)
WHERE books <> first
RETURN first, category, collect(books) as books
将图书限制为50:
MATCH (first:Book {ISBN: {ISBN}})-[:IN]-(category:BookCategory)
WITH first, category
LIMIT 1
MATCH (category)-[:IN]-(books:Book)
WHERE books <> first
RETURN first, category, collect(books)[0..50] as books