3

Wie kann ich ein Array in Google Cloud-Schlüssel abfragen?Abfrage eines Array in Google Cloud-Schlüssel

Ich habe schon versucht, diese

let query = { 
    sql:`SELECT id, name, description FROM articles WHERE lang = '` + req.swagger.params.lang.value + `' AND tags ARRAY['` + req.swagger.params.tag.value + `']::varchar[]` 
    }; 

Antwort

2

Sie implizit UNNEST Ihr Feldelement wollen werde. Als Beispiel

SELECT id, name, description 
FROM articles as a, a.tags as single_tag 
WHERE lang = "your lang value" 
     AND single_tag = "your tag value" 

Zuerst habe ich nicht verschachtelten implizit die Array-Spalte tags an die Säule single_tag.

Zweitens änderte ich Ihre where Klausel auf eine Gleichheit gegen die neue single_tag Spalte

Hinweis: Wenn mehrere Werte in Tags Ihren Kriterien entsprechen, können Sie die gleiche Reihe haben mehrere Male zurückgeführt. Sie können das Problem lösen, indem Sie eine Klausel DISTINCT hinzufügen, solange keine der zurückgegebenen Spalten Arrays oder Strukturen sind. Zum Beispiel:

SELECT DISTINCT id, name, description 
FROM articles as a, a.tags as single_tag 
WHERE lang = "your lang value" 
     AND single_tag = "your tag value" 
+2

Vielen Dank für die Antwort, ich habe es vor 5 Minuten herausgefunden ;-) - Ich denke, Schlüssel ist das fehlende Glied für den perfekten Stapel bei gcp! ICH LIEBE ES!! Danke für die tolle Arbeit! – Aron