首页 > 解决方案 > 选择数组内不同数组内的所有值

问题描述

我有一个看起来像这样的文档:

  "userName": "sample name",
  "values": [
    {
      "values": [
        {
          "brand": "SOLIGNUM CLEAR",
          "name": "Solignum Colourless AZ",
          "price": "569",
          "qip": "30.00",
          "sku": "1L",
          "unit": "Piece"
        }
      ]
    },
    {
      "values": [
        {
          "brand": "FirePRO",
          "name": "FirePRO",
          "price": "419.75",
          "qip": "30.00",
          "sku": "1L",
          "unit": "Cartons"
        },
        {
          "brand": "SOLIGNUM AEROSOL",
          "name": "Solignum Colourless AZ Aerosol",
          "price": "397",
          "qip": "30.00",
          "sku": "500ML",
          "unit": "Piece"
        }
      ]
    }
  ]

我的查询如下所示:

SELECT orders.unit, orders.sku, orders.name, orders.srp, TONUMBER(orders.price) AS price, orders.qip as quantity
FROM jdi stoCallLog
UNNEST stoCallLog.`values`[0].`values` AS orders

查询结果如下

我尝试将 unnest 块更改为:

UNNEST stoCallLog.`values`[1].`values` AS orders

仅选择第二个数组值

也像这样:

UNNEST stoCallLog.`values`.`values` AS orders

我猜不可能,它没有返回

我需要一种方法来一次选择所有值。有什么办法吗?

标签: nosqlcouchbasen1ql

解决方案


通过将 UNNEST 块修改为:

UNNEST `values` as rawOrders 
UNNEST rawOrders.`values` as orders 

推荐阅读