MongoDB 现代命令行 Shell
mongosh 是 MongoDB 官方的新一代 Shell,替代旧的 mongo。它支持连接字符串、JavaScript 语法、自动补全,并能在脚本中用 --eval 执行。
mongosh "mongodb://app@127.0.0.1:27017/appdb?authSource=admin"
mongosh "mongodb+srv://app@cluster.example.com/appdb"
mongosh --host rs0/host1:27017,host2:27017 -u app --authenticationDatabase admin
mongosh --quiet --eval 'db.runCommand({ ping: 1 })'
mongosh appdb --eval 'db.orders.countDocuments({})'
mongosh --tls --tlsCAFile ca.pem "mongodb://app@db:27017/appdb"
常用交互命令:
show dbs
show collections
db.orders.find({ status: "paid" }).limit(5)
db.orders.createIndex({ createdAt: 1 })
db.orders.explain("executionStats").find({ status: "paid" }).limit(5)
rs.status()
db.currentOp()
authSource 决定;用户建在 admin 却连业务库时会认证失败。mongodb+srv:// 依赖 DNS SRV 记录;内网或 DNS 受限时改用完整主机列表。--eval 里的引号容易被 shell 吃掉;复杂脚本写到文件再 load()。find() 默认返回游标,Shell 会打印前 20 条;脚本里要显式遍历或 toArray()。readPreference。limit、投影和索引。mongosh 与旧 mongo 的语法有差异;老脚本迁移要先验证。directConnection=true 只适合单节点排查。mongodump — 逻辑备份mongorestore — 恢复备份