Я пытаюсь понять, почему это происходит:
db.items.find({uid: {$in:[34, 54, 53,1,2,3,5,6,7]} }).limit(40).sort({_id:-1}).explain()
возвращает меня:
"cursor" : "BtreeCursor _id_-1_uid_1 multi",
"nscanned" : 167,
"nscannedObjects" : 40,
"n" : 40,
...
Однако без сортировки
db.items.find({uid: {$in:[34, 54, 53,1,2,3,5,6,7]} }).limit(40).explain()
возвращает меня:
"cursor" : "BtreeCursor uid_1 multi",
"nscanned" : 40,
"nscannedObjects" : 40,
"n" : 40,
...
Так что я не понимаю, почему, когда я добавляю сортировку, она сканирует больше документов? Я сортирую по id, также у меня есть этот индекс, чтобы попытаться улучшить " _id_-1_uid_1", но все равно он сканирует много документов.
Это огромная проблема в моем случае, потому что это моя локальная база данных, поэтому отсканировано всего несколько документов, однако на моем действующем сайте у меня отсканированы миллионы документов по причине, по которой я не знаю, что это есть.
Может кто-нибудь объяснить мне, что происходит?