Mongo Shell 是 MongoDB 的交互式 JavaScript shell,用于与 MongoDB 数据库进行交互。
一、启动与连接
1. 启动方式
在安装了 MongoDB 的系统中,打开命令行终端,输入`mongo`命令即可启动 Mongo Shell。如果 MongoDB 的可执行文件路径不在系统环境变量中,则需要先进入 MongoDB 的安装目录下的`bin`文件夹,再执行`mongo`命令。如果数据库没启动,输入 `mongod` 启动数据库。
2. 连接数据库
默认情况下,Mongo Shell 会尝试连接到本地运行的 MongoDB 实例,端口为 27017。也可以在启动时指定连接的主机、端口和数据库等信息,例如`mongo mongodb://localhost:27017/mydb`,其中`mydb`是要连接的数据库名称。
二、基本操作
1. 数据库操作
use: 切换或创建数据库
db: 查看当前连接的数据库
show dbs: 查看所有数据库
2. 集合操作
db.createCollection('mycollection'): 命令创建集合
show collections: 查看当前数据库中的所有集合
db.mycollection.insert(): 增
db.mycollection.find(): 查
db.mycollection.update(): 改
db.mycollection.remove():删
三、数据类型
1. 支持的数据类型
Mongo Shell 支持多种数据类型,包括字符串、数字、日期、数组、对象等。
db.mycollection.insert({
name: "John Doe",
age: 30,
hobbies: ["reading", "coding"],
address: {
street: "123 Main St",
city: "Anytown",
},
});
四、脚本编写与执行
1. 编写脚本
可以在 Mongo Shell 中直接编写 JavaScript 脚本,实现复杂的数据库操作逻辑。
function findUsersByAge(age) {
return db.users.find({ age: age });
}
2. 执行脚本文件
也可以将 Mongo Shell 脚本保存为`.js`文件,然后在命令行中使用`mongo <script.js>`的方式来执行脚本,其中`<script.js>`是脚本文件的路径。
五、权限与认证
1. 权限管理
MongoDB 支持用户权限管理,不同用户具有不同的权限来访问和操作数据库。在 Mongo Shell 中,可以使用`db.createUser()`命令创建用户,并使用`db.grantRolesToUser()`命令为用户授予角色和权限。
2. 认证方式
当 MongoDB 开启认证后,连接数据库时需要提供用户名和密码进行认证。可以在连接字符串中指定用户名和密码,如`mongo mongodb://username:password@localhost:27017/mydb`。
六、与编程语言的交互
1. 与 Node.js 交互
在 Node.js 应用中,可以使用`mongodb`模块来连接和操作 MongoDB 数据库,其操作方式与 Mongo Shell 有很多相似之处。通过`mongodb`模块,可以在 Node.js 中执行与 Mongo Shell 类似的数据库操作,实现数据的存储、查询和更新等功能。
2. 与 Python 交互
在 Python 中,可以使用`pymongo`库来与 MongoDB 进行交互。`pymongo`提供了类似于 Mongo Shell 的操作方法,使得在 Python 中可以方便地操作 MongoDB 数据库,如插入数据、查询数据和更新数据等。