azure - 如何在 CosmosDB 中查询嵌套对象值
问题描述
order_id = 9234029m
鉴于 CosmosDB 中的此文档,我如何检索匹配的对象:
{
"order": {
"order_id": "9234029m",
"order_name": "name",
}
}
我曾尝试在 CosmosDB 数据资源管理器中进行查询,但无法order_id
像这样简单地查询嵌套对象:
SELECT * FROM c WHERE c.order.order_id = "9234029m"
(错误:“语法错误,'order'附近的语法不正确”)
这看起来应该很简单,但事实并非如此!(在 CosmosDB 数据资源管理器中,所有查询都需要以 开头SELECT * FROM c
,但 REST SQL 也是一种替代方法。)
解决方案
正如您所发现的,order
是一个保留关键字,它会影响查询解析。但是,您可以通过稍有不同的语法(括号表示法)来超越这一点,并仍然查询您的数据:
SELECT *
FROM c
WHERE c["order"].order_id = "9234029m"
推荐阅读
- python - 得到结果“无”
- azure - Azure 路线图:AspCore 3.0
- fullpage.js - 整页 JS 动画锚:虚假故障
- java - 引起:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:订单靠近第 1 行,第 17 列,原因绝对不清楚
- angular - Jasmine:如何将事件数据与 triggerEventHandler 一起传递
- python - Python:在 AWS S3 中上传具有公共访问权限的 csv
- json - 当我的 API 返回 json 时如何使用 debug_kit
- javascript - 在ckeditor 5中获取元素的类似html的字符串表示
- azure - 如何在 Azure Redis 缓存控制台中查看匹配模式的键计数
- python - python中生成器表达式上的`bool`