MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ist cursor.skip() auf indizierten Schlüsseln immer schneller?

Keine Ihrer Abfragen filtert nach age , also gibt es keinen Grund, den Index zu verwenden.

Wenn Sie eine Bedingung für age hinzufügen , wird es einen Unterschied geben (wenn auch minimal bei so wenigen Dokumenten)

> 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",