如何查询 CosmosDB 的嵌套对象值
How to query CosmosDB for nested object value
如何检索与 order_id = 9234029m
匹配的对象,给定 CosmosDB 中的此文档:
{
"order": {
"order_id": "9234029m",
"order_name": "name",
}
}
我曾尝试在 CosmosDB 数据资源管理器中进行查询,但无法像这样简单地查询嵌套的 order_id
对象:
SELECT * FROM c WHERE c.order.order_id = "9234029m"
(错误:"Syntax error, incorrect syntax near 'order'")
这似乎应该如此简单,但事实并非如此! (在 CosmosDB 数据资源管理器中,所有查询都需要以 SELECT * FROM c
开头,但 REST SQL 也是一种替代方法。)
这显然是由于 order
是 CosmosDB SQL 中的保留关键字,即使如上使用也是如此。
如您所见,order
是一个保留关键字,它阻碍了查询解析。但是,您可以克服这一点,仍然可以使用略有不同的语法(括号表示法)查询您的数据:
SELECT *
FROM c
WHERE c["order"].order_id = "9234029m"
如何检索与 order_id = 9234029m
匹配的对象,给定 CosmosDB 中的此文档:
{
"order": {
"order_id": "9234029m",
"order_name": "name",
}
}
我曾尝试在 CosmosDB 数据资源管理器中进行查询,但无法像这样简单地查询嵌套的 order_id
对象:
SELECT * FROM c WHERE c.order.order_id = "9234029m"
(错误:"Syntax error, incorrect syntax near 'order'")
这似乎应该如此简单,但事实并非如此! (在 CosmosDB 数据资源管理器中,所有查询都需要以 SELECT * FROM c
开头,但 REST SQL 也是一种替代方法。)
这显然是由于 order
是 CosmosDB SQL 中的保留关键字,即使如上使用也是如此。
如您所见,order
是一个保留关键字,它阻碍了查询解析。但是,您可以克服这一点,仍然可以使用略有不同的语法(括号表示法)查询您的数据:
SELECT *
FROM c
WHERE c["order"].order_id = "9234029m"