如何在集合名称中使用带有连字符的SQL查询?

时间:2017-10-12 22:38:05

标签: azure azure-cosmosdb

有没有人知道如何在名称中带有连字符的CosmosDB Collection上使用SQL查询?例如

SELECT * FROM product-group where product-group.id = "3829503"

我已经看到可以使用[""]语法访问属性,但却看不到实际集合名称的任何解决方案。

1 个答案:

答案 0 :(得分:2)

通过DocumentDB SQL查询时,不需要指定确切的集合名称;你真的在查询中指定别名。

在查询资源管理器中(通过门户网站),首先选择一个集合来完成所有查询。此时,使用简单的别名进行查询。例如,以下是对名为sample-data的集合的查询(在“集合”下拉列表中选择),但我不需要在查询中指定实际的集合名称。我只是使用mycollection作为sample-data的别名:

enter image description here

在代码中,SDK调用包括数据库参数和集合参数,同样无需在查询中使用实际的集合名称。例如,从c#调用的相同查询可能如下所示:

client.CreateDocumentQuery<MyObject>(
            UriFactory.CreateDocumentCollectionUri("mydb", "sample-data"),
            "SELECT * FROM mycollection WHERE mycollection.id = '3829503'");