MongoDB
- MongoDB是一种基于文档的非关系型(NoSQL)数据库,数据存储在灵活的JSON文档中,便于快速查询和索引。
二、MongoDB下载
- **官网下载**:
-
官网地址:(https://www.mongodb.com/)
-
**注意**:需要登录账号(可免费注册)后才能下载。
- **其他下载方式**:
-
Windows 64位:[Try MongoDB Atlas Products](https://www.mongodb.com/)
-
Windows 32位:[Try MongoDB Atlas Products](https://www.mongodb.com/)
-
全部版本:[Try MongoDB Atlas Products](https://www.mongodb.com/)
三、MongoDB安装
- **启动MongoDB服务**:
- **MongoDB 3.x版本**:安装后需手动启动服务。
```bash
mongod --dbpath 数据库路径
```
-
**MongoDB 4.x版本**:默认安装为系统服务,开机自动启动。
-
Windows环境下,可通过以下命令查看服务状态:
```bash
services.msc
```
找到"MongoDB Server (MongoDB)"服务并启动。
四、MongoDB配置
- **配置环境变量**:
-
将MongoDB的`bin`目录路径(如`C:\Program Files\MongoDB\Server\4.4\bin`)添加到系统环境变量`PATH`中。
-
配置完成后,重启电脑以生效。
-
验证安装:
```bash
mongod --version
```
- **账户权限配置**:
-
**默认模式**:安装后默认为非授权模式,无需验证即可操作数据库。
-
**创建管理员账户**:
```javascript
mongo 127.0.0.1:27017
use admin
db.createUser({
user: "root",
pwd: "xxxxxx",
roles: ["root"]
})
```
- **创建普通用户**:
```javascript
mongo 127.0.0.1:27017
db.auth("root", "xxxxxx")
use mydbs
db.createUser({
user: "username",
pwd: "abc666",
roles: [
{ role: "dbOwner", db: "mydbs" }
]
})
```
- **修改配置文件**:
-
配置文件路径:`mongodb安装目录\bin\mongod.cfg`
-
开启权限验证:
```yaml
security:
authorization: enabled
```
- 修改后需重启MongoDB服务。
五、MongoDB常用命令
- **查看数据库**:
```javascript
show dbs
```
- **切换/创建数据库**:
```javascript
use 数据库名
```
- **查看当前数据库中的集合**:
```javascript
show collections
```
- **查看集合中的数据**:
```javascript
db.集合名.find().pretty()
```
- **创建集合**:
```javascript
db.集合名.insert({字段: 值})
```
- **删除数据库**:
```javascript
db.dropDatabase()
```
- **备份与恢复**:
- **备份**:
```bash
mongodump -h localhost --port 27017 -u 用户名 -p 密码 -db 数据库名 -o 备份路径
```
- **恢复**:
```bash
mongorestore -h localhost --port 27017 -u 用户名 -p 密码 --db 数据库名 --authenticationDatabase admin --drop 恢复路径
```
六、MongoDB数据模型设计
- **文档模型**:
-
数据以JSON文档形式存储,支持嵌套和数组。
-
示例:
```json
{
"name": "张三",
"age": 28,
"hobbies": ["读书", "旅游", "编程"]
}
```
- **关系设计**:
-
**内嵌文档**:适合一对一或多对一关系。
-
**引用文档**:适合多对多关系,使用`$lookup`进行关联查询。