【问题标题】:How to use SQL Query with hyphen in Collection name?如何在集合名称中使用带有连字符的 SQL 查询?
【发布时间】:2017-10-12 22:38:04
【问题描述】:

有谁知道如何对名称中有连字符的 CosmosDB 集合使用 SQL 查询?例如

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

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

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:

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

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

    在代码中,SDK 调用包括一个数据库参数和一个集合参数,再次避免了查询中需要实际集合名称。例如,从 c# 调用的相同查询可能如下所示:

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

    【讨论】:

    • @rob - 这个答案需要屏幕截图,因为我这样做是为了说明如何在门户中具体执行此操作,关键部分是集合下拉.在其下方,SDK 调用中的非图像代码。
    • 你是对的,你总是指定一个集合,无论是 SDK 还是查询资源管理器,这样你就可以在查询中使用任何别名,谢谢!
    猜你喜欢
    • 2014-09-02
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 2014-08-04
    • 2021-09-07
    相关资源
    最近更新 更多