'карточка', в вашем запросе не метка (которая, кстати, является 'Карточка'), а заполнитель для узла, так как вы сделали
(card:Card)
Кроме того, функция COUNT () будет сгруппировать по отдельной комбинации клиент / карта, и поскольку вы добавили «карточку», n_cards всегда будет равно 1, поэтому n_cards> 3 всегда будет ложным.
MATCH (card:Card)-[:BELONGS]-(customer:Customer)
WHERE card.country = 'US'
WITH customer, COLLECT(DISTINCT card) AS cards
WHERE SIZE(cards) > 3
RETURN customer, cards
, вероятно, будет работать, если вы хотите увидеть клиенты, которые имеют> 3 карты США
, вот что вы можете сделать, если хотите продолжить обработку клиентов и карт ..
// instead of RETURN , use WITH
WITH customer, cards
// UNWIND the cards as individual nodes
UNWIND cards AS card
// e,g, get transactions
WITH customer,card
OPTIONAL MATCH (card)-[t:TRANSACTION]->(m:Merchant)
RETURN customer.name AS customer,
card.number AS cardNumber,
t.amount AS amount,
m.name AS merchant