Question

I was wondering if it's possible to configure the behavior of tab completion in the mongo shell? The two behaviors I've seen are:

  1. The first hit of the tab key completes as far as there's no ambiguity, the second hit shows a list of possible options.
  2. Pressing the tab key completes the full expression according to the first possible option.

I personally much prefer the first option. I've seen both behaviors on different environments (all with mongo version 2 and up), and can't figure out whether it's configurable or caused by the environment.

Was it helpful?

Solution

The mongo shell autocompletion behaviour definitely isn't a configurable option. There are some differences in shell editing behaviour depending on the version of MongoDB you are using.

These differences extend beyond autocompletion to line editing, history, and keyboard shortcuts .. but to confirm your autocompletion observations:

  • MongoDB 1.8.x and older had behaviour #1
  • In MongoDB 2.0.x the shell editing library was changed from readline to linenoise (SERVER-2792) and resulted in a few changes including the tab completion (behaviour #2)
  • As of MongoDB 2.2.x, the original readline-style completion has been restored (SERVER-3809) along with other improvements to shell interaction (eg: SERVER-4321, SERVER-3787, ..).

It is certainly possible to use a mongo shell version which is different than your MongoDB server version if you prefer a given shell's behaviour. To take advantage of all server features and documented shell helpers you generally need a mongo shell version which is the same or newer major version as compared to the mongod version.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top