planCacheListQueryShapes

Definition

planCacheListQueryShapes

New in version 2.6.

Displays the query shapes for which cached query plans exist for a collection.

The query optimizer only caches the plans for those query shapes that can have more than one viable plan.

The mongo shell provides the wrapper PlanCache.listQueryShapes() for this command.

The command has the following syntax:

db.runCommand(
   {
      planCacheListQueryShapes: <collection>
   }
)

The planCacheListQueryShapes command has the following field:

Field Type Description
planCacheListQueryShapes string The name of the collection.
Returns: A document that contains an array of query shapes for which cached query plans exist.

Required Access

On systems running with authorization, a user must have access that includes the planCacheRead action.

Example

The following returns the query shapes that have cached plans for the orders collection:

db.runCommand(
   {
      planCacheListQueryShapes: "orders"
   }
)

The command returns a document that contains the field shapes that contains an array of the query shapes currently in the cache. In the example, the orders collection had cached query plans associated with the following shapes:

{
  "shapes" : [
     {
       "query" : { "qty" : { "$gt" : 10 } },
        "sort" : { "ord_date" : 1 },
        "projection" : { }
     },
     {
        "query" : { "$or" : [ { "qty" : { "$gt" : 15 } }, { "status" : "A" } ] },
        "sort" : { },
        "projection" : { }
     },
     {
       "query" : { "$or" :
          [
            { "qty" : { "$gt" : 15 }, "item" : "xyz123" },
            { "status" : "A" }
          ]
        },
        "sort" : { },
        "projection" : { }
      }
   ],
   "ok" : 1
}