从CosmosDB文档中,它指出CosmosDB在保留默认设置时会自动为每个插入的文档索引所有字段:https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-indexing

当使用MongoDB .NET客户端执行以下查询时,当我的集合(大量)变大时,RU从3 RU增加到7000 RU:

var existing = _mongoClient
            .GetDatabase("testDb")
            .GetCollection<AssaySample>("documents")
            .AsQueryable()
            .Any(d => d.ExternalReference == externalReference);

这意味着在尝试解析此查询时不会使用任何索引 . 查看由CosmosDB本身构建的索引,我们的文档中没有提及任何字段:

1

尝试添加此字段的索引时,会出现错误,指出此列上已存在索引:

2

那么这里发生了什么? CosmosDB是否有效地创建索引,这就是为什么我自己无法添加索引的原因 . 如果是,为什么我的查询表现得好像没有使用索引?