Я использую Cosmos DB с адаптером Mongo, получаю доступ через драйвер Ruby mongo. В настоящее время в базе данных содержится около 2,5 млн записей.
При запросе общего количества записей нет никаких проблем:
2.2.5 :011 > mongo_collection.count
D, [2017-11-24T11:52:39.796716 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | STARTED | {"count"=>"xp_events", "query"=>{}}
D, [2017-11-24T11:52:39.954645 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | SUCCEEDED | 0.15778699999999998s
=> 2565825
Но когда я пытаюсь подсчитать количество найденных записей на основе простого where, я сталкиваюсь с ошибкой Request rate is large
:
2.2.5 :014 > mongo_collection.find(some_field: 'some_value').count
D, [2017-11-24T11:56:11.926812 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | STARTED | {"count"=>"some_table", "query"=>{"some_field"=>"some_value"}}
D, [2017-11-24T11:56:24.629659 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | FAILED | Message: {"Errors":["Request rate is large"]}
ActivityId: 0000-0000-0000-000000000000, Request URI: /apps/XXX/services/XXX/partitions/XXX/replicas/XXX/, RequestStats: , SDK: Microsoft.Azure.Documents.Common/1.17.101.1 (16500), Message: {"Errors":["Request rate is large"]}
Я понимаю, как работает ошибка, но не понимаю, как такой запрос может максимально увеличить количество единиц измерения в секунду (установлено максимальное значение 10 000), поскольку запрашиваемое поле должно быть проиндексировано (автоматически).
Любой совет будет очень признателен!