使用N1QL访问Couchbase中的内部元素

时间:2016-04-27 11:30:41

标签: couchbase n1ql

首先,如果这个问题听起来太愚蠢,我很抱歉。但我最近在学习N1QL并需要一些输出作为我的陈述。我的桶名称是MultiSiteResponseTime,我试图通过执行" 从MultiSiteResponseTime选择HourResponsetime.Hour来获取所有小时的结果; "。但我没有得到任何结果。根据我的理解,如果你想访问内部元素,那么你必须像 HourResponsetime.Hour 那样使用它,但我不确定我错在哪里。此外,如果您可以帮我获取特定键的结果,例如我想知道第1小时响应时间的结果。

{
  "Para": "ResponseTime",
  "Date": "18-04-2016",
  "Qantas": {
    "HourResponsetime": [
      {
        "Hour": 0,
        "ResponseTime": 8
      },
      {
        "Hour": 1,
        "ResponseTime": 9
      },
    ]
  }
}

1 个答案:

答案 0 :(得分:7)

这绝不是一个愚蠢的问题!

A.B JSON对象时,虚线路径语法“A”效果很好。您的文档结构在HoursResponseTime中有一个数组对象,这就是它无效的原因。要做的是使用带星号的数组索引选择器:A[*]

此外,路径语法从文档内容的根开始。在这里你有一个中间对象Qantas,你应该参与其中。

这给了我们:

SELECT Qantas.HourResponsetime[*].Hour FROM MultiSiteResponseTime;

这会为每个文档返回 Hour s 数组。