sql >> Database teknologi >  >> NoSQL >> MongoDB

fjerner scanAndOrder:sandt i mit MongoDB-forespørgselsresultat

Tak for shoutoutet på Dex!

Hvis det ikke er for sent her i 2013, er det indeks, jeg anbefaler for at undgå scanAndOrder her, { _id:-1, cl:1, user_id:1 }.

Årsagen er, at en $lt på _id og en $in på user_id udgør intervaller på tværs af flere indeks "buckets". Et indeks af en anden rækkefølge end ovenstående betyder, at disse spande stadig skal sorteres sammen for at opfylde en sortering på _id. Ved at sætte _id først vil alle dokumenter, der er besøgt i indekset, være korrekt bestilt på forhånd.

Bemærk, at dette er en lille forbedring i forhold til Andres forslag ({ _id:-1, user_id:1, cl:1 }, som også burde undgå scanAndOrder), fordi det tillader den direkte ækvivalenskontrol på cl for at beskære resultaterne.

Tjek http://blog.mongolab.com/2012/06/cardinal- ins/ for flere detaljer.



  1. Redis-cli --csv mulighed (eksporterer til csv)

  2. Sådan sikrer du MongoDB med brugernavn og adgangskode

  3. Hent alle 'dokumenter' fra MongoDB 'samling'

  4. Mongo-PHP - MongoCursor undtagelse med MongoDB PHP Driver v1.6