首页 文章

从cosmos DB中提取分区键

提问于
浏览
1

如何提取集合中所有分区键的列表?假设我有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);
            }

这给出了空洞的结果 .

2 回答

  • 0

    您只需将 Partitionkey 修改为分区键的字段名称即可 .

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

    select distinct c.name from c
    

    我的查询结果如下:

    enter image description here

    它还可以提取 ""undefined .

    希望它能帮到你 .

  • 0

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

    • 该集合为空;

    • 没有包含 PartitionKey 名称的文件;

    • 您打算查询文档分区键,例如可能与 /PartitionKey 不同;

    --- Querying and Inspecting Documents ---

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

    --- Find the Partition Key ---

    您也可以仔细检查Azure门户中的收集分区键,导航到 CosmosDB/SQL Account > Data Explorer > > > Scale & Settings 并检查分区键字段上定义的内容(例如/ customerid,/ name等) .

    例如,考虑 partition key 被定义为 /customerid ,查询将如下所示:

    SELECT c.customerid FROM c
    

    或者以下查询,如果 /customerid 不是分区键,可能有重复项:

    SELECT DISTINCT c.customerid FROM c
    

相关问题