У меня есть база данных с 17 млн документов.Когда я запускаю запрос:
db.mycoll.find({ "timestamp" : { "$gt" : 1537401600000 , "$lt" : 1539820800000}})
это занимает 0,013 с
, но
db.mycoll.find({ "timestamp" : { "$gt" : 1537401600000 , "$lt" : 1539820800000}}).count()
занимает 4,01 с
Я хочу выяснить, есть лилюбой способ ускорить подсчет, поэтому я написал:
db.mycoll.find({ "timestamp" : { "$gt" : 1537401600000 , "$lt" : 1539820800000}}).count().explain();
или
db.mycoll.count({ "timestamp" : { "$gt" : 1537401600000 , "$lt" : 1539820800000}}).explain();
через несколько секунд возвращает мне ошибку:
Failed to execute script.
Error:
TypeError: db.mycoll.count(...).explain is not a function :
@(shell):1:1
, но этот запрос работает внесколько миллисекунд:
db.mycoll.find({ "timestamp" : { "$gt" : 1537401600000 , "$lt" : 1539820800000}}).explain();
Можно ли увидеть, какой план выполнения выполняется для count()
запроса?