A standalone, feature-rich MongoDB interactive CLI client for Go applications.
- 🚀 Full MongoDB protocol support
- 🔧 Customizable connection parameters
- 🔒 TLS/SSL support
- 💾 Connection pooling
- 📊 Pretty print JSON output
- ⏱️ Query timing
- 🔄 Replica set support
- 🎯 Database and collection operations
- 👤 Authentication with configurable auth source
go get github.com/binrchq/mongodb-clipackage main
import (
"log"
"os"
mongodbcli "github.com/binrchq/mongodb-cli"
)
func main() {
cli := mongodbcli.NewCLI(
os.Stdin,
"localhost",
27017,
"admin",
"password",
"mydb",
)
if err := cli.Connect(); err != nil {
log.Fatal(err)
}
defer cli.Close()
if err := cli.Start(); err != nil {
log.Fatal(err)
}
}config := &mongodbcli.Config{
Host: "localhost",
Port: 27017,
Username: "admin",
Password: "password",
Database: "mydb",
AuthSource: "admin",
ReplicaSet: "rs0",
ConnectTimeout: 15 * time.Second,
ServerSelectionTimeout: 15 * time.Second,
MaxPoolSize: 200,
MinPoolSize: 10,
RetryWrites: true,
RetryReads: true,
TLS: true,
}
cli := mongodbcli.NewCLIWithConfig(terminal, config)show dbs- List databasesuse <db>- Switch databaseshow collections- List collectionsshow users- List users
db.users.find()
db.users.find({"age": 25})
db.users.findOne({"name": "John"})
db.users.insertOne({"name": "Alice", "age": 30})
db.users.insertMany([{...}, {...}])
db.users.deleteOne({"name": "Alice"})
db.users.deleteMany({"age": {"$gt": 50}})
db.users.count()
db.users.count({"status": "active"})help- Show helpexit,quit- Exitpretty- Toggle pretty printtiming- Toggle timing
- Go 1.21 or higher
- MongoDB 4.0 or higher
- go.mongodb.org/mongo-driver - MongoDB driver
- github.com/chzyer/readline - Readline library
MIT License - see LICENSE file for details.
Maintained by binrc.
- mysql-cli - MySQL CLI
- postgres-cli - PostgreSQL CLI
- redis-cli - Redis CLI