Как сортировать в массиве объектов — CouchBase

#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 ...