如何提取集合中所有分区键的列表?假设我有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 回答
您只需将
Partitionkey
修改为分区键的字段名称即可 .例如,我的分区键是名称,因此查询如下所示:
我的查询结果如下:
它还可以提取
""
和undefined
.希望它能帮到你 .
以下是尝试解决此问题的一些想法 . 有可能:
该集合为空;
没有包含 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 ,查询将如下所示:
或者以下查询,如果 /customerid 不是分区键,可能有重复项: