在Cosmos DB Sql API中查询连接

时间:2018-02-03 15:18:21

标签: azure-cosmosdb

本文档有一个针对Cosmos DB SQL API运行的示例查询

https://docs.microsoft.com/en-us/azure/cosmos-db/tutorial-query-sql-api#example-query-2

SELECT c.givenName 
FROM Families f 
JOIN c IN f.children 
WHERE f.id = 'WakefieldFamily'
ORDER BY f.children.grade ASC

使用https://www.documentdb.com/sql/demo

在我将[0]放入顺序之前,我无法得到类似的例子。我刚得到 {}。注意我知道URL表示documentdb,但该页面上的页眉表示Cosmos DB

SELECT food.servings[0].amount
FROM ROOT food
WHERE food.id = "19015"
order by food.servings[0].amount

它应该有用吗?

是否有某个文档覆盖了您可以针对此API运行的所有查询?

(额外信息)

(1)转到https://www.documentdb.com/sql/demo

(2)将此查询置于其中

SELECT food.servings[0].amount
FROM ROOT food
WHERE food.id = "19015"
order by food.servings[0].amount

它有效,但此查询与https://docs.microsoft.com/en-us/azure/cosmos-db/tutorial-query-sql-api#example-query-2中的示例完全不同,它使用原始示例中不需要的“[0]”。

1 个答案:

答案 0 :(得分:1)

实际上不支持此功能。你应该得到一个错误指示这个,但由于某种原因,查询默默地不返回任何结果。如果用ORDER BY子句中的别名“c”替换“f.children”,则会得到预期的错误:

SELECT c.givenName 
FROM Families f 
JOIN c IN f.children 
WHERE f.id = 'WakefieldFamily'
ORDER BY c.grade ASC

您应该收到此错误:

Order-by over correlated collections is not supported.