2017-08-31 76 views
1

使用我有一个N1QL查询像如何返回纯数组中的子查询

SELECT RAW ARRAY_AGG(list.id) 
FROM default list 
WHERE list.type="list" 
AND "*" IN list.supported 

以下对象(S):

{ 
    "type": "list", 
    "id": "*", 
    "name": "Everything", 
    "listCount": 2, 
    "supported": [ 
    "*", 
    "test" 
    ] 
} 

现在的问题是,我会总是得到一个双阵列的结果:

[ 
    [ 
    "*", 
    "test" 
    ] 
] 

我怎么能现在防止双阵列结果或更好:我怎么使用这个结果在下面的子查询(其人方法会返回一个空数组):

SELECT * 
FROM default server 
WHERE server.type="server" AND ANY listId IN supportedLists SATISFIES 
listId in 

(SELECT RAW ARRAY_AGG(list.id) 
FROM default list 
WHERE list.type="list" 
AND "*" IN list.supported) 

END; 

其中服务器是:

{ 
    "type": "server", 
    "id": "AAABBBCCC", 
    "supportedLists": [ 
    "0", 
    "1" 
    ], 
} 

的选择

SELECT * 
FROM default server 
WHERE server.type="server" AND ANY listId IN supportedLists SATISFIES 
listId in 

["test", "other features"] 

END; 

正常工作...所以我的问题是definetly子选择

我想存档的是有一个支持列表(field supportedList)的服务器列表,例如所有的lis与功能 “测试”(支持的字段)TS

回答