【发布时间】:2017-10-12 22:38:04
【问题描述】:
有谁知道如何对名称中有连字符的 CosmosDB 集合使用 SQL 查询?例如
SELECT * FROM product-group where product-group.id = "3829503"
我已经看到可以使用 [""] 语法访问属性,但还没有看到任何针对实际集合名称的解决方案。
【问题讨论】:
标签: azure azure-cosmosdb
有谁知道如何对名称中有连字符的 CosmosDB 集合使用 SQL 查询?例如
SELECT * FROM product-group where product-group.id = "3829503"
我已经看到可以使用 [""] 语法访问属性,但还没有看到任何针对实际集合名称的解决方案。
【问题讨论】:
标签: azure azure-cosmosdb
通过 DocumentDB SQL 查询时,不需要指定确切的集合名称;您确实在查询中指定了别名。
在查询资源管理器(通过门户)中,所有查询都是通过首先选择一个集合来完成的。此时,使用一个简单的别名进行查询。例如,这是一个针对名为 sample-data 的集合的查询(在“集合”下拉列表中选择),但我不需要在查询中指定实际的集合名称。我只是使用mycollection 作为sample-data 的别名:
在代码中,SDK 调用包括一个数据库参数和一个集合参数,再次避免了查询中需要实际集合名称。例如,从 c# 调用的相同查询可能如下所示:
client.CreateDocumentQuery<MyObject>(
UriFactory.CreateDocumentCollectionUri("mydb", "sample-data"),
"SELECT * FROM mycollection WHERE mycollection.id = '3829503'");
【讨论】: