Сортировка документов в N1QL с использованием поля массива документа - PullRequest
0 голосов
/ 11 июня 2019

Нам нужно отсортировать документы, используя поле массива в документе, используя N1QL

У нас есть следующие документы, PCI :

{
  "id": "pci1",
  "_class" = "PCI",
  "productDSL": {
    "parameters": {
      "tpnb": ["02","04"]
    }
  }
},
{
  "id": "pci2",
  "_class" = "PCI",
  "productDSL": {
    "parameters": {
      "tpnb": ["01","02","04"]
    }
  }
},
{
  "id": "pci3",
  "_class" = "PCI",
  "productDSL": {
    "parameters": {
      "tpnb": ["01","02"]
    }
  }
},
{
  "id": "pci4",
  "_class" = "PCI",
  "productDSL": {
    "parameters": {
      "tpnb": ["02","03"]
    }
  }
}

Нам нужно "упорядочить" в соответствии с полем tpnb, которое является массивом. Таким образом, результат должен вернуться в следующем порядке

pci3,pci2,pci4,pci1

1 Ответ

2 голосов
/ 11 июня 2019

Попробуйте следующий запрос.ORDER основан на массиве в целом

SELECT id FROM default
WHERE _class = "PCI"
ORDER BY productDSL.parameters.tpnb;
...