500 КБ * 10000 документов - 5,1 ГБ для изучения. Это может занять несколько секунд, особенно если ваш кэш меньше этого.
Попробуйте вместо этого выполнить запрос count
.
Предполагая, что на createTime
есть индекс, и ни один документ в коллекции не содержит массив для этого поля (т. е. индекс не является мультиключевым), этот запрос должен быть полностью покрыт.
Это означает, что исполнитель запроса должен использовать этап COUNTSCAN, чтобы найти число совпадающих документов путем сканирования индекса, и никогда не должен просматривать один документ, что означает, что размер документа больше не имеет значения, и это должно Сократите ваш дисковый ввод-вывод, отток кэша и загрузку процессора.
db.myCollection.count({"createTime": {"$gte": "2019-01-01T00:00:00.000Z"},"createTime": {"$lte": "2020-01-01T23:59:59.999Z"}})`