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';