У меня есть json, и я хочу заказать этот json по нескольким свойствам даты и времени.Но есть свойство pinnedAt, которое указывает, что сообщение должно быть сверху.Я использую lodash, кстати.
Это документ SQL, что я пытаюсь объяснить:
Если указано NULLS LAST, нулевые значения сортируются после всех ненулевых значений;если указано NULLS FIRST, нулевые значения сортируются перед всеми ненулевыми значениями.Если ни то, ни другое не указано, поведение по умолчанию равно NULLS LAST, когда ASC указан или подразумевается, и NULLS FIRST, если указано DESC (таким образом, по умолчанию действует так, как если бы значения NULL были больше, чем значения NULL).Если указано ИСПОЛЬЗОВАНИЕ, порядок нуля по умолчанию зависит от того, является ли оператор оператором меньше или больше.
Подробнее можно прочитать здесь: https://www.postgresql.org/docs/9.0/static/sql-select.html
Итак, вот мои примеры данных:
{
"data": [
{
"name": "Paris",
"createdAt": "2018-10-01T08:28:05.074Z",
"pinnedAt": null
},
{
"name": "New York",
"createdAt": "2018-10-01T05:16:05.074Z",
"pinnedAt": null
},
{
"name": "Washington",
"createdAt": "2018-10-02T08:28:05.074Z",
"pinnedAt": "2018-10-02T15:19:23.245Z"
}
]
}
Мой код на заказ
posts = _.orderBy(state.posts, ['pinnedAt', 'createdAt'], ['desc', 'desc']);
Но этот порядок не такой, как я хочу.Вот что я ожидал
{
"data": [
{
"name": "Washington",
"createdAt": "2018-10-02T08:28:05.074Z",
"pinnedAt": "2018-10-02T15:19:23.245Z"
},
{
"name": "Paris",
"createdAt": "2018-10-01T08:28:05.074Z",
"pinnedAt": null
},
{
"name": "New York",
"createdAt": "2018-10-01T05:16:05.074Z",
"pinnedAt": null
}
]
}
Как я могу это сделать?
Спасибо.