sql >> Databasteknik >  >> NoSQL >> MongoDB

Orimligt långsam MongoDB-fråga, även om frågan är enkel och anpassad till index

Stöt på ett mycket liknande problem, och Indexering Råd och vanliga frågor på Mongodb.org säger, citat:

Så om du har nycklarna a,b och c och kör db.ensureIndex({a:1, b:1, c:1}), är dessa "riktlinjer" för att använda indexet så mycket som möjligt:

Bra:

  • hitta(a=1,b>2)

  • find(a>1 och a<10)

  • find(a>1 och a<10).sort(a)

Dåligt:

  • hitta(a>1, b=2)
  • find(a=1,b=2).sort(c)

  • hitta(a=1,b>2)

  • find(a=1,b>2 och b<4)

  • find(a=1,b>2).sort(b)

Dåligt:

  • hitta(a>1,b>2)

  • find(a=1,b>2).sort(c)

Hoppas det hjälper!

/J



  1. skapa mongodb-dokument med underdokument atomärt?

  2. Använda $push inom Array i mongoose

  3. Ändra typ av fält inuti mongoDB-aggregation och använder $lookup index på fält eller inte?

  4. Mongo-skal som ger ut felet Flera förekomster av alternativ