34

Where is the shell client for MongoDB, I found a number of packages related to MongoDB in Ubuntu 18.04 LTS but can't seem to find information where exactly is this client and what I should install.

I know that if I install the MongoDB package the shell will be included but I don't need the server and other stuff because I have Atlas (cloud db server).

Here are the links I found on the internet:

Does it make sense going trough all the trouble above and should I simply install the MongoDB package?

2 Answers 2

37

IMPORTANT: The legacy mongo shell was deprecated in the MongoDB 5.0 release and removed in the 6.0 release packages. The modern replacement is the MongoDB Shell (mongosh) which is a more fully featured JavaScript and Node.js REPL environment that is also compatible with a broader range of MongoDB server versions. For example, as of Feb 2024 mongosh was supporting MongoDB Server v4.2 and greater.

(original answer from March 2019 below)

If you just want the mongo shell, you could install the mongodb-clients package mentioned in your question. However, note that this includes an older shell version (3.6.3).

The official MongoDB packages are updated with each minor release and you should ideally install a shell version matching your MongoDB server's major version (3.6, 4.0). Significant mismatches in shell versus server versions can result in some subtle errors as well as missing or outdated helpers. For example, the MongoDB 3.6.x shell doesn't have helpers for transactions (which were added in 4.0).

The MongoDB documentation includes information on Installing the official packages on Ubuntu. There is a mongodb-org-shell package which only includes the MongoDB shell, and you may also want to install mongodb-org-tools for other command-line tools (mongodump, mongorestore, ...).

It would be best to follow the instructions in the MongoDB documentation as some details may change in future (such as the signing key), but the general steps to follow for MongoDB 4.0 on Ubuntu 18.04 (Bionic) are:

  1. Import the public key used to sign packages from MongoDB, Inc

     sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
    
  2. Create a package list file for MongoDB

     echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
    
  3. Update your local package database

     sudo apt-get update
    
  4. Install the desired MongoDB package(s)

     sudo apt-get install -y mongodb-org-shell
    

NOTE: The legacy mongo shell was deprecated in the MongoDB 5.0 release and removed in the 6.0 release packages. The modern replacement is the MongoDB Shell (mongosh) which is a more fully feastured JavaScript and Node.js REPL environment.

6
  • 1
    Thanks for your insights Stennie, I think this is exactly what I wanted to know! Mar 20, 2019 at 9:29
  • 2
    P.S. I ended up installing the clients package from Ubuntu reps, I always favor officially supported packages (by Ubuntu I mean, it's just easier most of the time) over installing from the internet, I needed it for testing purposes (the shell), 3.6.3 has the SSL and everything. However, I agree that in order to avoid as much issues as possible one should install recent versions of software (especially in production and stuff). And again - great and complete answer, very helpful! Mar 20, 2019 at 13:39
  • @Stennie for step 1, how to find the correct key (9DA31620334BD75D9DCB49F368818C72E52529D4 in your case) for one's own case?
    – Grace
    Mar 6 at 8:20
  • @Grace As noted in the answer from abcoep on this question, the mongo shell was deprecated in MongoDB 5.0 a few years after this answer was posted and now has a separate installer: mongodb.com/docs/mongodb-shell.
    – Stennie
    Mar 9 at 23:11
  • This answer could be greatly improved by making it self-contained. How to install mongosh? Mar 13 at 12:33
5

You might want to install mongosh (MongoDB Shell) instead. The legacy mongo shell has been deprecated since MongoDB v5.0 and replaced by mongosh. From the official website:

The new MongoDB Shell, mongosh, offers numerous advantages over the legacy mongo shell, such as:

  • Improved syntax highlighting.
  • Improved command history.
  • Improved logging.

Currently mongosh supports a subset of the mongo shell methods. Achieving feature parity between mongosh and the mongo shell is an ongoing effort.

To maintain backwards compatibility, the methods that mongosh supports use the same syntax as the corresponding methods in the mongo shell. To see the complete list of methods supported by mongosh, see MongoDB Shell Methods.

Further reference: Compatibility Changes with Legacy mongo Shell

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .