Я использую API MongoDB для доступа к CosmosDb в Azure.У меня есть коллекция из нескольких тысяч документов.
Они имеют следующую форму:
{
"_id" : ObjectId("5b4f574ac2100c890805a7d8"),
"id" : 12,
"name" : "Spotted Owl",
"overview" : "Some Overview text",
"family" : "Barn Owls, Typical Owls (Tytonidae & Strigidae)",
"latinName" : "Strix occidentalis"
}
Мне нужно запросить документы, используя потенциально большое количество «id» в запросе $ in.Запрос прост,
// The "$in" list can be 1000 items long.
db.MyCollection.find({"id": {$in: [1,2,3,4,5,6...]}})
У меня неуникальный индекс (который, вероятно, должен быть уникальным):
{
"id" : 1
}
В результате запрос с 1000 элементов занимает 20 секунд.или больше, чтобы вернуться.Если я просто получу все документы с:
db.MyCollection.find ({});
Результаты вернутся менее чем за секунду.
Кроме того, если я запускаю одни и те же тесты для своего локального экземпляра Mongo, оба запроса возвращаются менее чем за секунду.
Чего мне не хватает на стороне Azure / CosmosDb, что может быть причиной всего этого замедления?