Navigation

FAQ

What is the performance impact of running this tool?

Testing has shown that MongoDB Compass has minimal impact in prototype deployments, though additional performance testing and monitoring is in progress.

For best results, use MongoDB 3.2 or higher, which includes the $sample operator for efficient sampling on a collection. On older versions of MongoDB, MongoDB Compass falls back on a less efficient sampling method.

You should only execute queries that are indexed appropriately in the database to avoid scanning the entire collection.

How does Compass handle confidential data?

MongoDB Compass stores and retrieves sensitive data such as passwords using a credentials API specific to the operating system running Compass. The credentials API securely handles sensitive information by encrypting and protecting access to your data.

MongoDB Compass stores the following data using the credentials API:

  • MongoDB server passwords,
  • SSH passwords for tunneling,
  • TLS/SSL passphrases

MongoDB Compass utilizes a node.js native add-on, Keytar, to communicate with and store data in the operating system’s credentials API. For more information on how Keytar operates and the specific APIs it accesses, refer to the Keytar Github documentation.

What is sampling and why is it used?

Sampling in MongoDB Compass is the selection a subset of data from a particular collection and analyzing the documents within the sample set.

Sampling is a common technique in statistical analysis because analyzing a subset of the data gives similar results to analyzing all of it. In addition, sampling allows results to be generated quickly rather than performing a computationally-expensive collection scan.

How does sampling work?

MongoDB Compass employs two distinct sampling mechanisms.

In MongoDB 3.2, collections are sampled with the $sample operator via the aggregation pipeline. This provides efficient random sampling without replacement over the entire collection, or over the subset of documents specified by a query.

In MongoDB 3.0, collections are sampled via a backwards-compatible algorithm executed entirely within MongoDB Compass. It takes place in three stages:

  1. MongoDB Compass opens a cursor on the desired collection, limited to at most 10,000 documents sorted in descending order of the _id field.
  2. sampleSize documents are randomly selected from the stream. To do this efficiently, MongoDB Compass employs reservoir sampling.
  3. MongoDB Compass performs a query to select the chosen documents directly via _id.

sampleSize is set to 1000 documents.

Note

The choice of sampling method is done transparently in the background, with no changes required by the user.

Won’t sampling miss documents?

Sampling is chosen for its efficiency: the amount of time required to perform a sample is minimal, on the order of a few seconds. Increasing the sample confidence will demand more processing power and time. Furthermore, sophisticated outlier detection requires an inspection of every document in a MongoDB deployment, which would be unfeasible for large data sets. The MongoDB team is in the process of conducting user tests on large data sets to find a reasonable balance.

What happens to long running queries?

As a precaution, Compass aborts long running queries to prevent excessive querying on your database.

Slow Sampling

All queries that Compass sends to your MongoDB instance have a timeout flag set which automatically aborts a request if it takes longer than the specified timeout. This timeout is currently set to 10 seconds. If sampling on the database takes longer, Compass will notify you about the timeout and give you the options of (a) retrying with a longer timeout (60 seconds) or (b) running a different query.

Note

Sampling time may be affected by a number of factors, like load on the server, number of documents and existence of a suitable index for your query.

It is recommended that you only increase the sampling timeout if you are not connected to a production instance, as this may negatively affect the performance and response time of your database.

Slow Schema Analysis

If the database returns documents faster than the specified timeout (10 or 60 seconds), but the schema analysis of the documents takes longer than expected (due to complex, large documents), Compass gives you the option to abort the analysis step and show the partial results.

Why are some features of MongoDB Compass not working?

If you can connect to your MongoDB instance using MongoDB Compass but some features do not work as expected, your system firewall may be blocking network requests required by MongoDB Compass. MongoDB Compass features which require incoming connections from external sources include:

  • Third party mapping services such as Mapbox
  • Intercom
  • Bugsnag for error reporting

To fix this issue, configure your system firewall to allow incoming connections for MongoDB Compass. Ensure ports 80 and 443 are open between MongoDB Compass and the host for the MongoDB Instance to which Compass connects.

Note

Compass Isolated Edition restricts network requests to TLS-encrypted TCP connections to the server chosen on the Connect screen. All other outbound connections are not permitted in this edition, meaning no additional firewall configuration is required when running Compass Isolated Edition.

How do I view and modify my Privacy Settings?

To view and modify your MongoDB Compass privacy settings, from the top-level menu click Help, then Privacy Settings.

The privacy settings dialog allows you to toggle various MongoDB Compass settings such as enabling crash reports and automatic updates. See the following screenshot for all available privacy settings options:

../_images/privacy-settings.png

Note

Crash reports and automatic updates are not available in Compass Isolated Edition.

How do I enable geographic visualizations?

You can enable geographic visualizations in MongoDB Compass in your privacy settings. When Enable Geographic Visualizations is selected, MongoDB Compass is allowed to make requests to a third-party mapping service.

Note

Third party mapping services such as Mapbox are not available in Compass Isolated Edition.

←   Release Notes