MongoDB Shell(mongosh)介绍
                           
天天向上
发布: 2025-03-06 23:12:53

原创
620 人浏览过

MongoDB Shell 是 MongoDB 提供的官方交互式界面,允许用户与 MongoDB 数据库进行交互、执行命令和操作数据库。MongoDB Shell 是基于 JavaScript 的,允许用户直接在命令行或者脚本中使用 JavaScript 语言来操作 MongoDB 数据库。下面是一些 MongoDB Shell (mongosh) 实战实例,涵盖数据库的 增、删、改、查 及一些高级操作。


1. 连接 MongoDB

首先,打开终端或命令行,输入:

mongosh

如果连接成功,会看到:

Connecting to: mongodb://127.0.0.1:27017
MongoDB Server version: 7.0

2. 数据库操作

创建 / 选择数据库

use myDatabase

如果 myDatabase 不存在,MongoDB 会在插入数据时自动创建。

查看当前数据库

db

查看所有数据库

show dbs

删除数据库

db.dropDatabase()

3. 集合(Collection)操作

创建集合

db.createCollection("users")

查看当前数据库中的所有集合:

show collections

删除集合

db.users.drop()

4. 插入数据

插入单条数据

db.users.insertOne({ name: "Alice", age: 25, city: "New York" })

插入多条数据

db.users.insertMany([
  { name: "Bob", age: 30, city: "London" },
  { name: "Charlie", age: 28, city: "Tokyo" },
  { name: "David", age: 35, city: "New York" }
])

5. 查询数据

查询所有文档

db.users.find()

格式化输出:

db.users.find().pretty()

查询单条数据

db.users.findOne({ name: "Alice" })

查询满足条件的数据

查询所有 city 为 “New York” 的用户:

db.users.find({ city: "New York" })

查询满足多个条件的数据

查询 age > 28 且 city 是 “New York” 的用户:

db.users.find({ age: { $gt: 28 }, city: "New York" })

查询满足多个条件($or)

查询 city 是 “New York” 或者 “London” 的用户:

db.users.find({ $or: [ { city: "New York" }, { city: "London" } ] })

投影查询(只返回 name 和 city,不返回 _id)

db.users.find({}, { name: 1, city: 1, _id: 0 })

6. 更新数据

更新单条数据

"Alice"age 改成 26

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

更新多条数据

把所有 city 为 “New York” 的用户 增加字段 country=”USA”

db.users.updateMany({ city: "New York" }, { $set: { country: "USA" } })

使用 $inc 增加字段值

让所有 city 为 “Tokyo” 的用户 年龄增加 2 岁

db.users.updateMany({ city: "Tokyo" }, { $inc: { age: 2 } })

7. 删除数据

删除单条数据

删除 name=”Charlie” 的用户:

db.users.deleteOne({ name: "Charlie" })

删除多条数据

删除所有 city=”London” 的用户:

db.users.deleteMany({ city: "London" })

清空整个集合

db.users.deleteMany({})

8. 统计 & 排序

统计用户数量

db.users.countDocuments()

统计 city=”New York” 的用户数量:

db.users.countDocuments({ city: "New York" })

排序(按 age 降序排列)

db.users.find().sort({ age: -1 })

age 升序排列

db.users.find().sort({ age: 1 })

分页查询

查询第 2 页(每页 2 条):

db.users.find().skip(2).limit(2)

9. 创建索引

索引可以提高查询速度,例如在 name 字段上创建索引:

db.users.createIndex({ name: 1 })

查看集合的索引:

db.users.getIndexes()

删除索引:

db.users.dropIndex({ name: 1 })

10. 事务(适用于副本集模式)

开启事务

session = db.getMongo().startSession()
session.startTransaction()

执行数据库操作

usersCollection = session.getDatabase("myDatabase").users
usersCollection.insertOne({ name: "Eve", age: 27 })

提交事务

session.commitTransaction()
session.endSession()

回滚事务

session.abortTransaction()
session.endSession()

11. 退出 MongoDB Shell

exit

或者:

.quit()

总结

操作命令
创建数据库use myDatabase
查看所有数据库show dbs
创建集合db.createCollection("users")
插入数据db.users.insertOne({...})
查询数据db.users.find({city: "New York"})
更新数据db.users.updateOne({name: "Alice"}, { $set: { age: 26 } })
删除数据db.users.deleteOne({name: "Bob"})
删除集合db.users.drop()
删除数据库db.dropDatabase()
统计数据db.users.countDocuments()
索引优化db.users.createIndex({name: 1})
事务管理session.startTransaction()

这就是 MongoDB Shell (mongosh) 的基本操作!更多详细内容请关注其他相关文章。

官方安装说明:https://www.mongodb.com/zh-cn/docs/mongodb-shell/install/

发表回复 0

Your email address will not be published. Required fields are marked *