Возможно, вы забыли превратить свою доброту / справедливость в цифры!с toInteger
или toFloat
Да, потому что вы выполняете агрегацию, которая возможна только в проекции (WITH или RETURN), а не в выражении.У вас есть два варианта:
MATCH (s:Person)
RETURN s
ORDER BY s.goodness DESC LIMIT 1
(которые могут выиграть от упорядочения на основе индекса, если вы используете 3.5 и имеете индекс s.goodness и используете этот оператор).
MATCH (s:Person)
WHERE s.goodness > 0
RETURN s
ORDER BY s.goodness DESC LIMIT 1
Или вы можете использовать этот подход, который немного дороже и также нуждается в индексе добродетели, чтобы хорошо работать.
MATCH (s:Person)
WITH max(s.goodness) as max
MATCH (s:Person) WHERE s.goodness = max
RETURN s
(который может вернуть более одного человека)