把头靠在墙上一段时间了。我们使用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,或者......?
,我该如何缓解这种情况