2016-05-27 3 views
1

Folgendes ist eine der Beispieldokument in Couchbase.n1ql mehrere unnest in Select-Anweisung mit mehreren wo Bedingung

{ 
    "name":"abc", 
    "friends":["a","b","c"], 
    "bestfriends":["x","y","z"] 
} 

Ich möchte auf der Grundlage bestimmter Zustand auf „Freunde“ und „bestfriends“ „name“ anzuzeigen.

n1ql Abfrage

select s.name from userdetails s 
unnest s.friends as f 
unnest s.bestfriends as bf 
where f="a" or bf="a" 

Die obige Abfrage funktioniert gut, wenn sowohl das Array (Freunde, bestfriends) Array nicht leer sind.

aber selbst wenn eines der Arrays leer ist (zB. "Bestfriends": []), ist das Ergebnis null. Wie man das überwindet?

Antwort

1

In beiden Fällen LEFT OUTER UNNEST verwenden.