MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Заявка за бавен диапазон на многоключов индекс

Намерих отговора си в този въпрос:Ред на $lt и $gt в заявка за диапазон на MongoDB

Моят индекс е многоключов индекс (на tags ) и изпълнявам заявка за диапазон (на post_time ). Очевидно , MongoDB не може да използва двете страни на диапазона като филтър в този случай, така че просто избира $gte клауза, която е първа. Тъй като моята долна граница е най-ниското post_time стойност, MongoDB започва да сканира всички обекти.

За съжаление това не е цялата история. Опитвайки се да разреша проблема, създадох и индекси без много клавиши, но MongoDB настоя да използва лошия. Това ме накара да мисля, че проблемът е другаде. Накрая трябваше да премахна многоключовия индекс и да създам такъв без tags поле. Вече всичко е наред.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB bind_ip грешка:bind() неуспешно errno:99 Не може да се присвои искан адрес за сокет

  2. MongoDB - Не може да се канонизира заявка:BadValue неизвестен оператор:$meta

  3. Многократно използване на позиционния оператор `$` за актуализиране на вложени масиви

  4. Използвайте bluebird за mongoose, got .bind не е функция

  5. Как да активирате регистриране за Mongoose и драйвера MongoDB Node.JS