使用C#

时间:2019-05-10 06:13:21

标签: c# azure-cosmosdb-mongoapi

我试图使用C#MS Azure DocumentDB Core更新CosmosDB中的文档。

以下代码对于非Shard收集工作正常,而对于Shard收集却失败,Shard收集是用于10 GB以上数据存储的生产方案。对于碎片收集,在“ Demographics.Address.Country”字段中定义了碎片密钥。

var builder = new FilterDefinitionBuilder<CustomerDO>();
    var filter = builder.Eq("Id", customer.Id);

FieldDefinition<CustomerDO, Demographics> field1 = "Demographics";
var update = Builders<CustomerDO>.Update
                   .Set(field1, customer.Demographics);
Collection.UpdateOne(filter, update);

上面的代码无法进行分片收集,并显示错误-

  

命令更新失败:命令中的查询必须针对单个分片   键。

我在更新代码中发现问题。 更新操作与在过滤器定义表达式中添加分片键一起工作-

var filter = builder.Eq("Id", customer.Id) & builder.Eq("Demographics.Address.Country", "IND");

0 个答案:

没有答案