代码之家  ›  专栏  ›  技术社区  ›  Mark C.

Partiton键值为null时是什么?

  •  2
  • Mark C.  · 技术社区  · 6 年前

    我有一些记录是分区键所在的坏数据导致的 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 回复  |  直到 6 年前
        1
  •  1
  •   Aravind Krishna R.    6 年前

    Null、Undefined和empty string在Cosmos DB中都是不同的值。您需要以下内容: new RequestOptions { PartitionKey = new PartitionKey(null) }

        2
  •  1
  •   Tom Makin    5 年前

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

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

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