Предположим, у меня есть 4 фотографии, и я хочу вернуть список, отсортированный первым по рейтингу desc, второй по рейтингу RatingsCount desc. Ниже высчитывать запрос дает мне правильный результат:Закажите несколько объектов в Neo4jClient
MATCH (n:`Photo`) WHERE n.RatingsCount > 0 RETURN n.Rating, n.RatingsCount ORDER BY n.Rating DESC, n.RatingsCount DESC LIMIT 20
Id 1-Рейтинг 9-Ratingscount 1
Id 3-Рейтинг 7-Ratingscount 2
Id 2-Рейтинг 7-Ratingscount 1
Id 4-Rating 2-Ratingscount 1
К сожалению, я не могу перевести его на Neo4jClient. Ниже запрос дает мне photolist заказанный Рейтинг по возрастанию и Ratingscount убыванию:
var query = await graphClient.Cypher
.Match("(photo:Photo)")
.Where((PhotoEntity photo) => photo.RatingsCount > 0);
.ReturnDistinct((photo) => new
{
Photo = photo.As<PhotoEntity>()
})
.OrderByDescending("photo.Rating", "photo.RatingsCount")
.Limit(20)
.ResultsAsync;
Id 4-Рейтинг 2-Ratingscount 1
Id 3-Рейтинг 7-Ratingscount 2
Id 2-Рейтинг 7 -Ratingscount 1
Id 1-Рейтинг 9-Ratingscount 1
Если изменить порядок рейтинга и RatingsCount я получить фотографии в еще незнакомом порядке :) Любая подсказка о том, что я делаю неправильно здесь?
var query = await graphClient.Cypher
.Match("(photo:Photo)")
.Where((PhotoEntity photo) => photo.RatingsCount > 0);
.ReturnDistinct((photo) => new
{
Photo = photo.As<PhotoEntity>()
})
.OrderByDescending("photo.RatingsCount", "photo.Rating")
.Limit(20)
.ResultsAsync;
Id 1-Рейтинг 9-Ratingscount 1
Id 2-Рейтинг 7-Ratingscount 1
Id 4-Рейтинг 2-Ratingscount 1
Id 3-Рейтинг 7-Ratingscount 2
Ах, конечно, в следующий раз я буду проверять источник Neo4jClients перед тем как задать вопрос здесь :) я на самом деле пробовал этот подход, но с строчным по алфавиту вместо DESC, который дал мне исключение. В моем случае я хочу сначала отсортировать по рейтингу, но OrderBy («photo.Rating DESC, photo.RatingsCount DESC») работает как шарм, спасибо! –