什么是Partiton Key值为null?

时间:2018-02-16 16:02:15

标签: azure-cosmosdb

我的记录是错误数据的结果,其中分区键是null,我需要清理它们,但到目前为止我还没有成功。

enter image description here

这是我尝试过的:

 var scriptResult = await _dbClient.ExecuteStoredProcedureAsync<dynamic>(
                GetStoredProcLink("BulkDelete"),
                new RequestOptions() { PartitionKey = new PartitionKey(""), EnableScriptLogging = true },
                "select * from c where c.documentDbType = "SomeValue"");

我还尝试使用Undefined.Value作为new PartitionKey()的参数。

我从here中删除了存储过程并且还没有改变任何内容。

注意:如果不明显(/companyId

,这是一个分区集合

2 个答案:

答案 0 :(得分:0)

Null,Undefined和empty字符串在Cosmos DB中都是不同的值。你需要这样的东西:new RequestOptions { PartitionKey = new PartitionKey(null) }

答案 1 :(得分:0)

在迁移到新的数据库级别吞吐量提供时,我刚刚遇到了此问题。当我的模型不包含指定的分区Key属性时,这种语法使我重新启动并运行:

new RequestOptions() {
   PartitionKey = new PartitionKey(Undefined.Value)
}

参考: https://www.lytzen.name/2016/12/06/find-docs-with-no-partitionkey-in-azure.html