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

ams*_*b24 6 azure azure-cosmosdb

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

SELECT * FROM product-group where product-group.id = "3829503"
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*gon 8

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

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

在此输入图像描述

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

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

  • @rob - 这个答案*需要*屏幕截图,因为我这样做是为了说明如何在门户中具体执行此操作,关键部分是集合下拉列表。下面是 SDK 调用中的非图像代码。 (3认同)