sql >> Databasteknik >  >> NoSQL >> MongoDB

Fråga med långsamt intervall på ett flernyckelindex

Hittade mitt svar i denna fråga:Ordning av $lt och $gt i MongoDB-intervallfråga

Mitt index är ett multikey-index (på tags ) och jag kör en intervallfråga (på post_time ). Tenbarligen , MongoDB kan inte använda båda sidor av intervallet som ett filter i det här fallet, så den väljer bara $gte klausul, som kommer först. Eftersom min nedre gräns råkar vara den lägsta post_time värde, börjar MongoDB skanna alla objekt.

Tyvärr är detta inte hela historien. För att försöka lösa problemet skapade jag även icke-multikey-index, men MongoDB insisterade på att använda det dåliga. Det fick mig att tro att problemet låg någon annanstans. Till slut var jag tvungen att släppa multikey-indexet och skapa ett utan tags fält. Allt är bra nu.




  1. Använd MongoEngine och PyMongo tillsammans

  2. lagra upp-/nedröster i mongodb

  3. Hur grupperar och väljer man dokument motsvarande max inom varje grupp i MongoDB?

  4. Hur infogar man data i en mongodb-samling med c# 2.0-drivrutinen?