So sortieren Sie das innere Array eines Dokuments, das mithilfe der Dokument-ID abgerufen wird

Oct 01 2020
SELECT * from bucket b WHERE meta().id = 'PROFILE_LIST'

Die obige Abfrage gibt das folgende Ergebnis an, aber zusätzlich muss das innere Array matchProfile_ in der sortierten Reihenfolge von createdDate vorliegen. Ist es möglich? Wenn ja, welche Änderungen muss ich vornehmen, damit diese Abfrage dasselbe erreicht?

[
   {
    "matchingProfile_": [
            {
              "createdDate": "2020-09-26T02:30:00",
              "contactDetails_": {
                "address_": {
                  "addressLine1_": "",
                  "addressLine2_": "",
                  "city_": ""
                 }
            },
            {
              "createdDate": "2020-09-27T02:30:00",
              "contactDetails_": {
                "address_": {
                  "addressLine1_": "",
                  "addressLine2_": "",
                  "city_": ""
                 }
            }
    ]
   }
]

Antworten

2 vsr Oct 01 2020 at 01:27

Verwenden Sie den Unterabfrageausdruck, um die gesamte Dokumentstruktur beizubehalten und das Array auf die gewünschte Weise zu sortieren (verwenden Sie sogar die vollständige SQL-Funktionalität).

SELECT b.*, 
      (SELECT RAW mp 
       FROM b.matchingProfile_ AS mp 
       ORDER BY mp.createdDate) AS matchingProfile_
FROM bucket AS b USE KEYS 'PROFILE_LIST';