1、MongoDB数据库的使用
- 开启
mongodb服务:要管理数据库,必须先开启服务 - 查看所有数据库列表
show dbs
2、创建数据库
- 使用数据库、创建数据库
use student
注意:如果真的想把这个数据库创建成功,那么必须在集合中插入一条文档数据。
-
数据库中不能直接插入数据,只能往集合(collections)中插入数据。不需要专门创建集合,只需要写点语法插入数据就会创建集合:
db.students.insert({“name”:”xiaoming”});db.students 系统发现 students 是一个陌生的集合名字,所以就自动创建了集合
-
显示当前的数据集合(mysql中叫表)
show collections -
删除数据库,删除当前所在的数据库
db.dropDatabase(); -
删除集合,删除指定的集合
db.COLLECTION_NAME.drop() db.user.drop()
3、插入(增加)数据
- 插入数据,随着数据的插入,数据库创建成功了,集合也创建成功了
db.表名.insert({"name":"gogery"});
4、查找数据
-
1、查询所有记录
// select* from userInfo; db.userInfo.find(); -
2、查询去掉后的当前聚集集合中的某列的重复数据
// select distict name from userInfo; db.userInfo.distinct("name");会过滤掉 name中的相同数据
-
3、查询 age = 22的记录
// select * from userInfo where age = 18; db.userInfo.find({"age": 18}); -
4、查询 age > 22的记录
// select * from userInfo where age > 22; db.userInfo.find({age: {$gt: 22}}); -
5、查询 age < 22的记录
// select * from userInfo where age <22; db.userInfo.find({age: {$lt: 22}}); -
6、查询 age >= 25的记录
// select * from userInfo where age >= 25; db.userInfo.find({age: {$gte: 25}}); -
7、查询 age <= 25的记录
// db.userInfo.find({age: {$lte: 25}}); -
8、查询 age >= 18 并且 age <= 26
db.userInfo.find({age: {$gte: 18, $lte: 26}}); -
9、查询 name中包含 gogery 的数据
// 模糊查询用于搜索 // select * from userInfo where name like '%gogery%'; db.userInfo.find({name: /gogery/}); -
10、查询 name中以 gogery 开头的
// select * from userInfo where name like 'gogery%'; db.userInfo.find({name: /^gogery/}); -
11、查询指定字段 name、age 的数据
// select name, age from userInfo; db.userInfo.find({}, {name: 1, age: 1}); -
12、查询指定列 name、age数据, age > 25
// select name, age from userInfo where age >25; db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1}); -
13、按照年龄排序
- 1 升序
- -1 降序
// 升序: db.userInfo.find().sort({age: 1}); // 降序: db.userInfo.find().sort({age: -1}); -
14、查询 name = zhangsan, age = 22的数据
// select * from userInfo where name ='gogery' and age =18; db.userInfo.find({name: 'gogery', age: 18}); -
15、查询前 5条数据
// select * from userInfo limit 5; db.userInfo.find().limit(5); -
16、查询 10条以后的数据
// select * from userInfo limit 10, xxx; db.userInfo.find().skip(10); -
17、查询在 5-10 之间的数据
db.userInfo.find().limit(10).skip(5); -
18、or 与查询
// select * from userInfo where age = 22 or age = 25; db.userInfo.find({$or: [{age: 22}, {age: 25}]}); -
19、findOne查询第一条数据
db.userInfo.find().limit(1); -
20、查询某个结果集的记录条数
// select count(*) from userInfo where age >= 18; db.userInfo.find({age: {$gte: 18}}).count();
5、修改数据
-
修改里面还有查询条件
-
同时要包含修改的新数据
-
查找名字叫做小明的,把年龄更改为16岁
db.student.update({"name":"小明"}, {$set:{"age":16}}); -
查找数学成绩是 70,把年龄更改为 20 岁:
db.student.update({"score.math":70},{$set:{"age": 20}});默认情况下,使用 update 方法进行文档更新的时候,是会将匹配到的文档中的第一条进行更新,如果想更新全部文档,则需要使用 {multi: true} 进行限制。
db.student.update({"sex":"男"},{$set:{"age":33}},{multi: true}); -
查找名字叫做小明的,把年龄增加 10 岁
db.users.update({name: '小明'}, {$inc: {age: 50}}, false, true);
6、删除数据
db.collectionsNames.remove( { "name": "gogery" } )
db.users.remove({age: 132});
默认情况下,使用 remove 方法进行文档删除的时候,是会将所有匹配到的文档全部删除,如果只想删除单条文档,则需要使用juestOne 进行限制。
db.restaurants.remove( { "name": "gogery" }, { justOne: true } )