数据库分类
- 关系型数据库
MySQL - 非关系数据库
MongoDB
MongodDB
- MongoDB的存储数据的形式bson
- 数据库功能是用来存储数据的。
- 数据库分为关系系数据库和非关系型数据库(nosql)
- 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档。
- 非关系型数据库文件存储格式为BSON(一种JSON的扩展)。
MongoDB常用操作命令
- MongoDB连接地址: mongodb://127.0.0.1:27017
- MongoDB
数据库 -》 集合 -》 文档
针对数据库(database)的操作 - help 数据库帮助
- use db_name 创建/切换数据库,存在指定数据库则切换,不存在则创建
- db||db.getName() 查看当前使用数据库
- db.states() 当前数据库的DB状态
- db.dropDatabase() 删除当前使用数据库
- show dbs 查询当前本地所有数据库(新创建的数据库里面没有任何数据(集合)存在时是不会显示的)
- db.versions() 查看当前MongoDB版本
- db.getMongo() 当前数据库的链接地址
针对集合(collections)的操作
(1)创建一个集合
db.createCollection(“collName”, {size: 20, capped: true, max: 100});
db.collName.isCapped(); //判断集合是否为定容量
(2)得到指定名称的集合
db.getCollection(“account”);
(3)得到当前db的所有集合
db.getCollectionNames();
(4)显示当前db所有集合的状态
db.printCollectionStats()
针对文档(docuemnt)的操作 - 添加
- db.coll_name.save({})
- db.coll_name.insertOne({})
- db.coll_name.insert({})
4.注意事项:在插入数据时如果指定的集合不存在,则会创建该集合
- 查询
db.coll_name.find(arg1,arg2) 所有的
参数解释:
arg1 表示的是匹配条件
arg2 表示将来输出的内容匹配 0 表示不要, 1表示要
举例:
db.movies.find({year:‘1993’},{_id:0,title:1})
升序
举例:
db.movies.find({year:‘1993’},{_id:0,title:1}).sort({year:1})
降序
举例:
db.movies.find({year:‘1993’},{_id:0,title:1}).sort({year:-1})
截取 某条以前 limit
db.movies.find({year:‘1993’},{_id:0,title:1}).limit(5)
截取 某条以后 skip
db.movies.find({year:‘1993’},{_id:0,title:1}).skip(5)
优先级:
sort>skip>limit
KaTeX parse error: Expected '}', got 'EOF' at end of input: …teachers.find({or:[{age:10},{age:40}]})
findOne() 第一条数据
db.teachers.findOne()
count() 计数
举例:
db.movies.find({year: {$gt:“1993”}},{_id:0,title:1,year:1}).count() //16 - 删除
db.coll_name.remove({}) - 修改
db.coll_name.update(arg1,arg2,arg3,arg4)
参数解释:- arg1: 匹配条件
- arg2: 修改的具体内容
- arg3: false / true 匹配几条 false 一条 true 多条
- arg4: false / true 修改几条 false 一条 true 多条
主要决定条件是arg4,例如arg3,arg4=(false,true)是仍然是修改多条数据
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ate({age:120},{inc: {age: 80}},false,true)
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ate({age:120},{inc: {age: 80}},false,true)
只有数值类型可以执行自增操作