MongoDB简介

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

MongoDB安装

1.配置yum源

1
2
3
4
5
6
7
8
9
vim /etc/yum.repos.d/mongodb-org-4.0.repo

# 配置
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/#releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

2.yum安装

1
sudo yum install -y mongodb-org

3.相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
# 启动|重启|关闭
systemctl start|restart|stop mongod

# 查看进程
ps -aux | grep mongod

# 卸载MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org)
sudo rm -r /var/log/mongodb # 删除日志文件
sudo rm -r /var/lib/mongo # 删除数据文件

# 验证服务
mongo

image-20201102123022331

4.配置远程连接

1
2
3
4
5
vim /etc/mongod.conf

# bind修改为0.0.0.0

service mongod restart # 重启服务

必须开放27017端口或者关闭防火墙,否则无法连接

MongoDB基本操作

1.插入查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// 列出所有集合
db.getCollectionNames();

// 插入一条数据并创建表
db.users.insert({username:"zs",age:"3",height:"180"});

// 插入多条数据
db.users.insert([
{username:"zs",age:"3",height:"180"},
{username:"ls",age:"4",height:"155"},
{username:"ww",age:"5",height:"158"},
]);

db.users.insert([
{username:"zs2",age:3,height:140},
{username:"zs3",age:13,height:150},
{username:"zs4",age:23,height:170},
{username:"zs5",age:33,height:160},
]);


// 查 集合.find({字段:值})
db.users.find();
db.users.find({username:"zs"})

// 大于 $gt 小于 $lt 大于等于 $gte 相等 $eq 不等 $ne 取反 $not(注意数字和字符串)
db.users.find({
age:{
$not:{
$eq:"5"
}
}
});
// 查询条件匹配的数据
db.users.find({
age:{
$in:[13,33]
}
});
// 查询条件不匹配的数据
db.users.find({
age:{
$nin:[13,33]
}
});
// 查询条件完全匹配的数据
db.users.find({
happies:{
$all:["读书",""]
}
});


// 正则查找 ig:忽略大小局并全局
db.users.find({
username:{
$regex:/zs/ig
}
});

// 多条件 与
db.users.find({
age:{$gte:13},
username:{$eq:"zs3"}
});

db.users.find({
age:{$gte:"13"},
username:{$regex:/ZS/ig}
});

// 多条件 或
db.users.find({
$or:[
{age:{$gte:13}},
{username:{$eq:"ww"}}
]
});

// 取出3条数据
db.users.find().limit(3);
// 跳过3条数据
db.users.find().skip(3).limit(3);

// 排序 1升序-1降序
db.users.find().sort({age:1});
db.users.find().sort({age:-1});

2.更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 更新 $set
db.users.update(
{username:"zs"},
{$set:{age:1}}
);
// 自增3 $inc
db.users.update(
{username:"zs"},
{$inc:{age:3}}
);
// 删除年龄 $unset (值随意)
db.users.update(
{username:"zs"},
{$unset:{age:1}}
);


// 往数组里面添加值 $push
db.users.update(
{username:"zs"},
{$push:{age:123}}
);

// 删除数组里面的值 $pop(-1从左边删,1从右)
db.users.update(
{username:"zs"},
{$pop:{age:-1}}
);

// 删除数组里面具体的值 $pull
db.users.update(
{username:"zs"},
{$pull:{age:123}}
);

评论