CHOOSE - Cosmos DB 中的查询语言

CHOOSE 函数在列表的指定索引处返回表达式,如果索引超出列表的边界,则返回 Undefined。

Syntax

CHOOSE(<numeric_expr>, <expr_1> [, <expr_N>])

Arguments

Description
numeric_expr 一个数值表达式,指定用于获取列表中特定表达式的索引。 列表的起始索引为 1.
expr_1 列表中的第一个表达式。
expr_N 可选表达式(s),该表达式最多可以包含列表中第 N 个项的可变数量的表达式。

返回类型

返回一个表达式,该表达式可以是任何类型的。

例子

本部分包含有关如何使用此查询语言构造的示例。

对于这些示例,请考虑集合中的 Products 一组文档示例。

[
  {
    "name": "Vimero Hydration Pack",
    "category": "gear",
    "sku": "69500",
    "detailCategory": "gear-hike-hydration-packs"
  },
  {
    "name": "Mt. Hood Hydration Pack",
    "category": "gear",
    "sku": "69501",
    "detailCategory": "gear-hike-hydration-packs"
  }
]

从列表中选择

在此示例中,该 CHOOSE 函数用于选择索引 1 处的值。

SELECT VALUE 
  CHOOSE(1, "Vimero", "Hydration", "Pack")
[
  "Vimero"
]

按索引选择

在此示例中,该 CHOOSE 函数用于在不同的索引中选择值。

SELECT VALUE {
  index_0: CHOOSE(0, "Mt.", "Hood", "Hydration", "Pack"),
  index_1: CHOOSE(1, "Mt.", "Hood", "Hydration", "Pack"),
  index_2: CHOOSE(2, "Mt.", "Hood", "Hydration", "Pack"),
  index_3: CHOOSE(3, "Mt.", "Hood", "Hydration", "Pack"),
  index_4: CHOOSE(4, "Mt.", "Hood", "Hydration", "Pack"),
  index_5: CHOOSE(5, "Mt.", "Hood", "Hydration", "Pack")
}
[
  {
    "index_1": "Mt.",
    "index_2": "Hood",
    "index_3": "Hydration",
    "index_4": "Pack"
  }
]

从产品中选择字段

在此示例中,该 CHOOSE 函数用于从“short-fins”类别中的产品中选择第三个字段。

SELECT VALUE
  CHOOSE(3, p.category, p.name, p.sku)
FROM
  products p
WHERE
  p.detailCategory = "gear-hike-hydration-packs"
[
  "69500",
  "69501"
]

注解

  • 此函数不使用索引。
  • 此函数使用 基于一个的索引,这意味着列表中的第一项位于索引 1 位置,而不是在许多编程语言中找到的典型从零开始的索引。