【问题标题】:How to query CosmosDB for nested object value如何在 CosmosDB 中查询嵌套对象值
【发布时间】:2020-03-24 23:58:43
【问题描述】:

鉴于 CosmosDB 中的此文档,我如何检索与 order_id = 9234029m 匹配的对象:

{
    "order": {
        "order_id": "9234029m",
        "order_name": "name",
    }
}

我曾尝试在 CosmosDB 数据资源管理器中进行查询,但无法像这样简单地查询嵌套的 order_id 对象:

SELECT * FROM c WHERE c.order.order_id = "9234029m"

(Err: "语法错误,'order' 附近的语法不正确")

这似乎应该如此简单,但事实并非如此! (在 CosmosDB 数据资源管理器中,所有查询都需要以 SELECT * FROM c 开头,但也可以使用 REST SQL。)

【问题讨论】:

    标签: azure azure-cosmosdb azure-cosmosdb-sqlapi


    【解决方案1】:

    这显然是由于order 是 CosmosDB SQL 中的保留关键字,即使按上述方式使用也是如此。

    【讨论】:

      【解决方案2】:

      正如您所发现的,order 是一个保留关键字,它阻碍了查询解析。但是,您可以通过稍有不同的语法(括号表示法)来查询您的数据:

      SELECT *
      FROM c
      WHERE c["order"].order_id = "9234029m"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多