#arrays #database #sorting #couchbase #n1ql
#массивы #База данных #сортировка #couchbase #n1ql
Вопрос:
Привет, в настоящее время я хочу отсортировать массив объектов, я использую функцию ARRAY_SORT, она будет использовать первое поле объекта для сортировки, и это будет хорошо работать, если каждый объект имеет одинаковую структуру JSON. Если один элемент в массиве имеет другую структуру JSON, результат неверен.
Запрос, который я использую :
SELECT ARRAY_SORT(c.student) as student FROM Class c
Результат :
"student": [
{
"id": 3,
"name": "Kenny35"
},
{
"id": 6,
"name": "Kenny35"
},
{
"id": 7,
"name": "Kenny35"
},
{
"id": 8,
"name": "Kenny35"
},
{
"hobby": "video game",
"id": 5,
"name": "Kenny35"
}
]
Как я могу указать свойство объекта в массиве для функции ARRAY_SORT ?
Ответ №1:
dev, объекты сначала сравниваются по длине / размеру объекта, затем следуют поля в объекте. http://developer.couchbase.com/documentation/server/4.5/n1ql/n1ql-language-reference/comparisonops.html
Это единственная сортировка, поддерживаемая сейчас. -Прасад
Ответ №2:
Вы можете выполнить запрос и использовать ORDER BY .
SELECT *
FROM Class c
UNNEST c.student s
ORDER BY ...