У меня есть набор Author
узлов. Узел Author
является единственным родителем нескольких узлов Book
.
Моя цель: напечатать все узлы Author
без порядка и без ограничений, с первыми тремя книгами каждого автора в алфавитном порядке.
Желаемый вывод : (давайте представим, что названия книг - одна буква)
[
{
"name" : "Leo Tolstoy",
"books": [
{ "name": "A" },
{ "name": "B" },
{ "name": "D" }
]
},
{
"name": "Charles Dickens",
"books": [
{ "name": "C" },
{ "name": "E" },
{ "name": "F" }
]
},
{
"name": "Oscar Wilde
...
]
Моя проблема : я пробовал это:
MATCH(author:Author)
WITH author
OPTIONAL MATCH(author)-[:WROTE]->(book:Book)
WITH author, book
ORDER BY book.name
LIMIT 3
WITH author, collect(book) AS books
RETURN collect (
{
name: author.name,
books: books
}
);
Но это дает:
[
{
"name" : "Leo Tolstoy",
"books": [
{ "name": "A" },
{ "name": "B" },
]
},
{
"name": "Charles Dickens",
"books": [
{ "name": "C" }
]
}
]
Как мне достичь желаемого результата в Neo4j v3.5?