使用 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 每个文档的 Hours 数组。