0
鑑於下面的Java代碼的數組:迭代通過陣列出使用N1QL
String statement = "SELECT `path` FROM test-bucket;";
N1qlQueryResult queryResult = bucket.query(N1qlQuery.simple(statement);
for (N1qlQueryRow n1qlQueryRow : queryResult) {
System.out.println(n1qlQueryRow.toString());
}
而僅含有JSON-文件結構如以下示例上Couchbase測試桶:
{
"path": "C:\\example\\filename.txt",
"outer_array": [
{
"inner_array": [
{
"value": 1,
},
{
"value": 2,
}
]
},
{
"inner_array": [
{
"value": 3,
}
]
}
]
}
我想用一個簡單的字符串遍歷outer_array
和每個inner_array
的每個value
。如果至少有一個值滿足statement
的條件,則應將path
添加到queryResult
。 的statement
應該是這個樣子(這個例子是錯誤的):
statement = "SELECT `path` FROM test-bucket WHERE outer_array.inner_array.value=1;";
但是,這顯然是行不通的。那麼我需要做些什麼來檢查每個value
?
由於內部數組是一個數組* *,我認爲你可以使用'WHERE 1 IN outer_array.inner_array' –
這並不爲我工作。沒有錯誤,運行代碼後'queryResult'爲空。 – Paul
啊對。沒有意識到有一個JSON對象,而不是簡單的值數組。我的錯! –