Search code examples
mongodbmongodb-querymongodb-compass

List all the query shapes in mongo database or collection


I was going through the documentation on the official site, where I happened to find out the term query-shape while browsing details over the indexes section.

The details look interesting and quite possibly a list of these could help me with all possible queries that are being raised to a cluster while I am planning to onboard an existing deployed application.

But the question that I have now is that is there a way to do the above on the command line for a collection(or complete database)?

As a side note, I use both compass community and robo3t as tools built over CLI to access the datastore and as well comfortable to run the command on mongo shell directly too.


Solution

  • With some more time and effort, I could find PlanCache.listQueryShapes which was a slight variation towards the more recent version of mongo which I was using.

    Seemingly the $planCacheStats introduced in 4.2 was something I was looking forward to. The following query helped me list all the query shapes over a collection as mentioned in the list query shapes section.

    db.user_collections.aggregate( [ { $planCacheStats: { } } , 
                                     { $project: {createdFromQuery: 1, queryHash: 1 } } ] )