Драйвер Azure CosmosDB Mongo C # ReplaceOneAsync выдает «Слишком большой размер запроса» - PullRequest
0 голосов
/ 09 мая 2018

Некоторое время стучу головой о стену. Мы используем 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);

Я проверил размер entity, используя Encoding.UTF8.GetBytes (JsonConvert.SerializeObject (entity)), который возвращает ~ 528000

Согласно Microsoft ограничение составляет 2 МБ, поэтому я намного ниже.

Также просматривал исходный код драйвера, но не могу найти ничего очевидного.

Почему я получаю эту ошибку? Как я могу смягчить это, если я, возможно, использую различные UpdateOptions, или ...?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...