100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
MongoDB

The Mongo Shell and mongosh

How to use mongosh, MongoDB's modern JavaScript-based shell, for interactive queries, scripting, and administration.

MongoDB FoundationsBeginner8 min readJul 10, 2026
Analogies

The Mongo Shell and mongosh

mongosh is MongoDB's modern command-line shell, a Node.js-based REPL that replaced the legacy 'mongo' shell (deprecated and removed starting with MongoDB 6.0 tooling) and adds features like syntax highlighting, auto-completion, and better error messages. It lets you run JavaScript directly against a connected database, so commands like db.collection.find() aren't just query syntax, they're real JavaScript method calls evaluated in a live interpreter, which means you can also write loops, variables, and functions right at the prompt.

🏏

Cricket analogy: mongosh replacing the legacy mongo shell is like the DRS (Decision Review System) replacing on-field-only umpiring — same fundamental job of getting the right call, but with better tooling and clearer feedback for everyone involved.

Core Commands and Navigation

Inside mongosh, show dbs lists available databases, use <dbname> switches your active database (creating it lazily on first write), show collections lists collections in the current database, and the special db variable always refers to the currently selected database. From there you interact with a collection via db.<collectionName>, calling methods like insertOne, find, updateOne, deleteOne, and aggregate, all of which are plain JavaScript function calls that mongosh evaluates and pretty-prints the results of.

🏏

Cricket analogy: Running 'use tournament' to switch your active database is like a broadcaster switching the feed to a different stadium — everything you do next, like db.matches.find(), operates within that selected venue's context.

Formatting Output and Scripting

Query results returned by find() are Cursor objects; calling .pretty() formats them with indentation, while chaining .toArray() materializes all results into a JavaScript array you can iterate over or pass to other functions. Beyond interactive use, mongosh can execute a whole .js file non-interactively with mongosh <connection-string> file.js, which is how administrators automate recurring tasks like index creation or data migrations as reusable scripts rather than retyping commands by hand.

🏏

Cricket analogy: Running a mongosh script file to recreate indexes automatically is like a groundskeeper following a fixed pre-match checklist to prepare the pitch, instead of improvising pitch preparation from scratch before every single match.

Getting Help Inside the Shell

mongosh includes built-in help: typing help lists shell-level commands, db.help() lists database-level methods, and db.<collection>.help() lists collection-level methods, which is often faster than searching documentation when you half-remember a method name. Tab completion also works for database names, collection names, and method names, so typing db.prod and pressing Tab will suggest db.products if that collection exists in the current database.

🏏

Cricket analogy: Using db.help() to recall an unfamiliar method is like a young batter glancing at a coach's laminated cheat-sheet of shot options mid-net-session instead of stopping to search a coaching manual.

javascript
// Common mongosh navigation and query commands
show dbs
use ecommerce
show collections

// Find documents and format the cursor as an array
db.products.find({ inStock: true }).toArray()

// Get help for a collection's available methods
db.products.help()

// A short script loop at the prompt
for (let i = 0; i < 3; i++) {
  db.logs.insertOne({ msg: `boot sequence ${i}`, ts: new Date() })
}

mongosh is built on Node.js, so many familiar JavaScript features work directly at the prompt, including async/await, template literals, and destructuring, which makes it far more powerful for scripting than the legacy mongo shell.

The legacy 'mongo' shell binary has been deprecated and is no longer bundled with recent MongoDB Server releases; scripts and tutorials that reference 'mongo' rather than 'mongosh' may need small syntax adjustments for newer versions.

  • mongosh is the modern, Node.js-based shell that replaced the deprecated legacy mongo shell.
  • use <dbname> switches the active database, and db always refers to it.
  • show dbs and show collections list databases and collections respectively.
  • Collection methods like find, insertOne, and updateOne are plain JavaScript calls.
  • .toArray() materializes a cursor's results into a JavaScript array.
  • mongosh can run .js files non-interactively for scripted administration tasks.
  • Built-in help() and tab completion speed up recalling method and collection names.

Practice what you learned

Was this page helpful?

Topics covered

#MongoDB#MongoDBStudyNotes#Database#TheMongoShellAndMongosh#Mongo#Shell#Mongosh#Core#StudyNotes#SkillVeris