mongosh 0.2.4

A high-performance MongoDB Shell implementation in Rust
Documentation

Rust MongoDB Power CLI

Crates.io Rust License: MIT

A power-user oriented MongoDB CLI written in Rust, focused on productivity, scripting, and rich output.

Note: This project is an independent, community-driven tool. It is NOT affiliated with MongoDB, and it is not intended to be a drop-in replacement for the official mongosh.


โœจ Why Another MongoDB CLI?

The official MongoDB Shell (mongosh) is excellent for compatibility and JavaScript workflows. This project exists for engineers who want a faster, more scriptable, and CLI-native experience:

  • ๐Ÿง  Power-user workflows โ€” Batch queries, automation, CI/CD
  • ๐Ÿ“Š Readable output โ€” Tables, highlighted JSON
  • โšก Fast startup & execution โ€” Compiled Rust binary
  • ๐Ÿงฉ Extensible architecture โ€” Plugins & future extensions

If you rely heavily on JavaScript execution inside the shell, you should continue using the official mongosh.


๐Ÿ” Key Differences vs Official mongosh

Feature Official mongosh This Project
Implementation Node.js Rust (async)
JS Runtime Full JavaScript โŒ Not a JS shell
Startup Time Slower Fast
Output JSON-first Tables + highlighted JSON
Scripting JS-based CLI / batch-oriented
Target Users General users Power users / DevOps

๐Ÿšง Project Status

โš ๏ธ Active Development โ€“ Not Production Ready

  • APIs and commands may change
  • Some MongoDB features are incomplete
  • Bugs and panics may exist

Feedback, testing, and contributions are highly welcome.


โœจ Features

  • โšก High Performance โ€” Native Rust, async I/O
  • ๐Ÿ’พ Lightweight โ€” Small static binary
  • ๐Ÿ”’ Type Safety โ€” Memory-safe by design
  • ๐Ÿงต Async Execution โ€” Powered by Tokio
  • ๐ŸŽจ Syntax Highlighting โ€” Readable command & JSON output
  • ๐Ÿง  Smart Completion โ€” Context-aware auto-completion
  • ๐Ÿ“Š Rich Output โ€” Table & structured views (WIP)
  • ๐Ÿ”Œ Extensible โ€” Plugin-friendly design
  • ๐ŸŒ Cross-Platform โ€” Linux, macOS, Windows

๐Ÿ“ฆ Installation

cargo install mongosh

Note: The binary name may change in the future to avoid conflicts with the official MongoDB shell.


๐Ÿš€ Quick Start

Connect to MongoDB

# Connect to local MongoDB
mongosh

# Connect to a specific host
mongosh mongodb://localhost:27017

# Connect with authentication
mongosh mongodb://username:password@localhost:27017/dbname

๐Ÿงช Example Commands

Show Databases

show dbs

Switch Database

use mydb

Show Collections

show collections

Insert a Document

db.users.insertOne({ name: "John Doe", age: 25 });

Query Documents

db.users.find({ age: { $gte: 18 } });

Update Documents

db.users.updateOne({ name: "John Doe" }, { $set: { age: 26 } });

Aggregation Pipeline

db.orders.aggregate([
  { $match: { status: "completed" } },
  { $group: { _id: "$userId", total: { $sum: "$amount" } } },
]);

๐Ÿ“„ License

Licensed under the MIT License.


๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“ฌ Feedback

If you have any questions, suggestions, or issues, please open an issue on GitHub.