sql >> Database >  >> NoSQL >> MongoDB

Is cursor.skip() op geïndexeerde sleutels altijd sneller?

Geen van uw zoekopdrachten filtert op age , dus er is geen reden om de index te gebruiken.

Als u een voorwaarde toevoegt op age , zal er een verschil zijn (zelfs als het minimaal is met zo weinig documenten)

> pageNumber=18;nPerPage=20; db.slow.find({age:{$gt:200}}).
      skip(pageNumber > 0 ? ((pageNumber-1)*nPerPage) : 0).limit(nPerPage).
      explain("executionStats")

# "executionTimeMillis" : 14,
# "inputStage" : {
#     "stage" : "COLLSCAN",

> pageNumber=18;nPerPage=20; db.fast.find({age:{$gt:200}}).
      skip(pageNumber > 0 ? ((pageNumber-1)*nPerPage) : 0).limit(nPerPage).
      explain("executionStats"

# "executionTimeMillis" : 0,
# "inputStage" : {
#     "stage" : "IXSCAN",


  1. Geneste ingesloten documenten opvragen met Mongoose

  2. Vind MongoDB-records waar het matrixveld niet leeg is

  3. MongoDB geneste groep?

  4. Meteor vereist sudo om te rennen