使用 N1QL 访问 Couchbase 中的内部元素
Accessing inner elements in Couchbase with N1QL
首先,如果这个问题听起来太愚蠢,我很抱歉。但我最近在学习 N1QL,需要一些输出来做我的陈述。我的存储桶名称是 MultiSiteResponseTime,我试图通过执行“select HourResponsetime.Hour from MultiSiteResponseTime;”来获取所有时间的结果。但我没有得到任何结果。据我了解,如果你想访问内部元素,那么你必须像这样使用它 HourResponsetime.Hour 但我不确定我错在哪里。另外,如果你能帮助我获得特定键的结果,例如我想知道第 1 小时的 ResponseTime 的结果。
{
"Para": "ResponseTime",
"Date": "18-04-2016",
"Qantas": {
"HourResponsetime": [
{
"Hour": 0,
"ResponseTime": 8
},
{
"Hour": 1,
"ResponseTime": 9
},
]
}
}
这绝不是一个愚蠢的问题!
当 A
是一个 JSON 对象 时,点路径语法“A.B
”运行良好。您的文档结构在 HoursResponseTime
中有一个 数组 个对象,这就是它不起作用的原因。方法是使用带星号的数组索引选择器:A[*]
.
此外,路径语法从文档内容的根开始。这里有一个中间对象 Qantas
,您应该将其作为路径的一部分。
这给了我们:
SELECT Qantas.HourResponsetime[*].Hour FROM MultiSiteResponseTime;
这应该 return 每个文档的 Hour
s 数组。
首先,如果这个问题听起来太愚蠢,我很抱歉。但我最近在学习 N1QL,需要一些输出来做我的陈述。我的存储桶名称是 MultiSiteResponseTime,我试图通过执行“select HourResponsetime.Hour from MultiSiteResponseTime;”来获取所有时间的结果。但我没有得到任何结果。据我了解,如果你想访问内部元素,那么你必须像这样使用它 HourResponsetime.Hour 但我不确定我错在哪里。另外,如果你能帮助我获得特定键的结果,例如我想知道第 1 小时的 ResponseTime 的结果。
{
"Para": "ResponseTime",
"Date": "18-04-2016",
"Qantas": {
"HourResponsetime": [
{
"Hour": 0,
"ResponseTime": 8
},
{
"Hour": 1,
"ResponseTime": 9
},
]
}
}
这绝不是一个愚蠢的问题!
当 A
是一个 JSON 对象 时,点路径语法“A.B
”运行良好。您的文档结构在 HoursResponseTime
中有一个 数组 个对象,这就是它不起作用的原因。方法是使用带星号的数组索引选择器:A[*]
.
此外,路径语法从文档内容的根开始。这里有一个中间对象 Qantas
,您应该将其作为路径的一部分。
这给了我们:
SELECT Qantas.HourResponsetime[*].Hour FROM MultiSiteResponseTime;
这应该 return 每个文档的 Hour
s 数组。