2

如何提取集合中所有分区键的列表?假设我有 cosmos DB 的 Collection Link。

我正在尝试这样的事情:

foreach (var id in client.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri("db12", "coll12"),
    "SELECT DISTINCT c.Partitionkey FROM c", queryOptions))
            {
                Console.WriteLine("\tRead------------------- {0} from SQL", id);
            }

这给出了空的结果。

4

2 回答 2

1

您只需要将 修改为Partitionkey分区键的字段名称。

例如,我的分区键是名称,因此查询如下所示:

select distinct c.name from c

我的查询结果如下:

在此处输入图像描述

它还可以提取""and undefined

希望它可以帮助你。

于 2018-06-08T06:46:24.543 回答
1

以下是尝试解决此问题的一些想法。有可能:

  • 集合为空;
  • 没有包含PartitionKey名称的文档;
  • 您的意思是查询文档分区键,例如,它可能与/PartitionKey不同;

--- 查询和检查文件 ---

您可以在 Azure 门户中查询集合中的文档,导航到CosmosDB/SQL Account > Data Explorer > {Database Name} > {Collection Name} > New SQL Query。然后,在那里运行查询实验并查看所有(分页)文档。

--- 找到分区键 ---

您也可以在 Azure 门户中仔细检查集合分区键,导航到CosmosDB/SQL 帐户 > 数据资源管理器 > {Database Name} > {Collection Name} > Scale & Settings并检查 Partition Key 字段中定义的内容(例如 /customerid、/name 等)。

例如,考虑到分区键被定义为/customerid,查询将如下所示:

SELECT c.customerid FROM c

或以下查询,以防/customerid不是分区键并且可能有重复项:

SELECT DISTINCT c.customerid FROM c
于 2018-06-08T06:21:43.813 回答