如何通过查询多级嵌套值来选择整个 JSON 文档?这是我的 JSON 示例:
{
"id": "6316194187233559482",
"type": "Hotel",
"attributes": [
{
"country": "Germany",
"officialNames": [
{
"name": "The Ritz-Carlton, Berlin",
"language": "GER"
}
],
"streetsAndCities": [
{
"city": "Berlin",
"cityLanguage": "GER",
"street": "Potsdamer Platz ",
"streetLanguage": "GER"
}
]
}
]
}
我想查询它的“名称”属性。我已经尝试过 UNNEST 函数,并且我可以毫无问题地访问第一级嵌套数据,即“officialNames”。但我不知道如何访问“名称”属性。按位置引用它,例如:
SELECT * FROM document
UNNEST attributes as attributes
WHERE attributes[0].officialNames[0].name = "The Ritz-Carlton, Berlin"
不会起作用,因为 JSON 中每个属性的位置都可以更改。
最佳答案
“JSON 中每个属性的位置都可以改变”是什么意思?您的意思是“attributes”、“officialNames”和“streetsAndCities”数组可以有其他条目,并且您想搜索所有条目吗?
如果是,请查看此处的 ANY 运算符: https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/collectionops.html
关于json - N1QL - 在 CouchBase 中查询多级嵌套的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53631253/