$explain
On this page
$explain
Note
Deprecated since v3.0
Starting in v3.2, the
$explain
operator is deprecated inmongosh
. Inmongosh
, usedb.collection.explain()
orcursor.explain()
instead.The
$explain
operator provides information on the query plan. It returns a document that describes the process and indexes used to return the query. This may provide useful insight when attempting to optimize a query. For details on the output, see cursor.explain().You can specify the
$explain
operator in either of the following forms:db.collection.find()._addSpecial( "$explain", 1 ) db.collection.find( { $query: {}, $explain: 1 } ) In
mongosh
, you also can retrieve query plan information through theexplain()
method:db.collection.find().explain()
Behavior
$explain
runs the actual query to determine the result.
Although there are some differences between running the query with
$explain
and running without, generally, the performance
will be similar between the two. So, if the query is slow, the
$explain
operation is also slow.
Additionally, the $explain
operation reevaluates a set
of candidate query plans, which may cause the $explain
operation to perform differently than a normal query. As a result,
these operations generally provide an accurate account of how
MongoDB would perform the query, but do not reflect the length of
these queries.
Tip
See also:
MongoDB Performance page for information regarding optimization strategies.
Database Profiler tutorial for information regarding the database profile.