Azure CosmosDB Mongo C#驱动程序ReplaceOneAsync抛出"请求大小太大"

时间:2018-05-08 23:24:25

标签: c# mongodb azure-cosmosdb

把头靠在墙上一段时间了。我们使用Azure CosmosDB(Mongo)来存储我们的自定义文档。 我们正在使用MongoDB C#驱动程序。

它在下面的ReplaceOnAsync失败了"请求大小太大"。

    var existingEntity = await GetAll<TEntity>().Where(predicate).SingleOrDefaultAsync();

    if (existingEntity == null)
        throw new Exception($"Mongo: No {typeof(TEntity).Name.ToLower()} document found: {predicate}");

    entity.IdDoc = existingEntity.IdDoc;
    entity.LastUpdatedDate = DateTime.Now;

    var filter = new FilterDefinitionBuilder<TEntity>().Eq(e => e.IdDoc, existingEntity.IdDoc);
    var collection = GetCollection<TEntity>();
    var updateRes = await collection.ReplaceOneAsync(filter, entity);

我使用Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(entity))检查了entity的大小,返回~528000

根据Microsoft,限制为2MB,所以我远低于此。

同时一直在查看驱动程序的the source code,但找不到任何明显的内容。

为什么我收到此错误?如果我可能使用不同的UpdateOptions,或者......?

,我该如何缓解这种情况

0 个答案:

没有答案