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