嵌套对象的 Cosmos DB SQL 查询
Posted
技术标签:
【中文标题】嵌套对象的 Cosmos DB SQL 查询【英文标题】:Cosmos DB SQL Query for nested objects 【发布时间】:2019-01-25 20:38:17 【问题描述】:我在 Cosmos DB 中有帐户集合。我尝试了不同的查询,但未能通过等效的 SQL 查询仅获取已选择订阅的帐户。
我试过这个查询但失败了
SELECT *
FROM account a
JOIN s IN c.subscriptions
WHERE s.id = "e5969a3c-2729-cb3c-a01b-2e62e0473646"
收款记录
[
"id": "8c549b95-480e-47f9-acd6-13339179399f",
"odoo_id": "UpdatedDAta",
"entity_name": "Lakes High School123",
"entity_type": "family | teacher | school | district",
"contacts": [
"name": "Mr. Garcia1",
"email": "Garcia@junk.com"
,
"name": "Mr. Garcia3",
"email": "Garcia@junk.com"
],
"subscriptions": [
"id": null,
"type": "group | profile",
"group_name": "Year 4",
"teachers": [
"Ms Jones"
],
"start_date": "25/7/2018",
"end_date": "24/7/2019",
"seats": 4,
"group_key": "red-limping-pigeon"
,
"id": "e5969a3c-2729-cb3c-a01b-2e62e0473646",
"type": "group | profile",
"group_name": "Year 4",
"teachers": [
"Ms Jones",
"Waqar"
],
"start_date": "25/7/2018",
"end_date": "24/7/2021",
"seats": 4,
"group_key": "red-limping-pigeon"
],
"_rid": "bjcNANQrW3oGAAAAAAAAAA==",
"_self": "dbs/bjcNAA==/colls/bjcNANQrW3o=/docs/bjcNANQrW3oGAAAAAAAAAA==/",
"_etag": "\"01001c87-0000-0000-0000-5b7966850000\"",
"_attachments": "attachments/",
"_ts": 1534682757
]
【问题讨论】:
【参考方案1】:请使用以下 sql 获取您的文档:
SELECT * FROM c
where ARRAY_CONTAINS(c.subscriptions,"id": "e5969a3c-2729-cb3c-a01b-2e62e0473646",true)
Array Contains 可以返回一个布尔值,指示数组是否包含指定的值。
希望对你有帮助。
【讨论】:
以上是关于嵌套对象的 Cosmos DB SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 LINQ 针对 Azure Cosmos Document DB SQL API 有效地进行动态查询?
Azure 函数:如何将 http 触发器函数的查询字符串参数绑定到 Cosmos DB 的 SQL 查询