mongoDB
1.数据库的基本介绍
回顾
-
数据库
- 使用数据结构来组织、管理、存储数据的仓库
-
数据库分类
- 关系型数据库
- 代表: MySql
- 非关系型数据库
- 代表:MongoDB
- 关系型数据库
-
两个类型数据库的区分
- 是否有表
-
两个数据库构成
- SQL
- 数据库 - 表 - 行
- NoSql
- 数据库 - 集合 - 文档
- 文档: 一个bson的键值对文档
- 数据库 - 集合 - 文档
- SQL
-
bson
- bson是json的超集
- bson比json多了二进制等数据类型
- MongoDB的存储数据类型就是bson
-
sql和nosql的区别
- 数据库功能是用来存储数据的。
- 数据库分为关系系数据库和非关系型数据库(nosql)
- 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集- 合下面是很多的文档。
- 非关系型数据库文件存储格式为BSON(一种JSON的扩展)。
mongoDB基础操作
- net start mongoDB 开启monggoDB
- net stop mongoDB 关闭mongoDB
- mongod 开启mongoDB服务
- mongo 打开mongoDB终端
- 显示数据库列表 > show dbs
- 创建数据库 > use 数据库名 如果没有数据库就创建数据库如果有就切换到该数据库
- 显示数据库中的集合 show collections
mongoDB的RUDS
-
增加数据
- db.webs.save({“name”:“张三”,“age”:“18”,sex:“man”})
- db.webs.insert({“name”:“李四”,“age”:“18”,sex:“man”})
-
修改数
-
db.webs.save({"_id":ObjectId(“5da445c25aaed432028d2cce”),“name”:“王五”})})
-
db.webs.update({“name”:“赵六”},{$set:{sex:“man”}},true,true)
第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配所有符合条件的数据,第四个参数表示修改所有匹配到的数据(为true则更改所有的数据,为false只修改匹配的第一个数据)
-
-
删除数据
- db.webd.remove({}) 删除集合下的所有数据
- db.webs.remove({name:“张三”}) 删除集合下对匹配的记录
- db.webd.drop()或db.runCommand({“drop”:“webs”}) 删除集合users
- db.runCommand({“dropDatabase”: 1}) 删除当前数据库,注意 此处的1没加双引号
-
查询数据
- db.webs.find() 查找users集合中所有数据
- db.webs.findOne() 查找users集合中的第一条数据
- db.webs.find().pretty() 格式化查询到的数据
-
条件查找
- db.webs.find({name:“张三”})
- db.webs.find({age:{$gt:“18”}}) 查询集合中大于18的数据 小于(lt) 大于等于(gte) 小于等于(lte)
- db.webs.find({ “age” : { $gt: age, $lt: age} })匹配18<X<25
- db.webs.find({age:{$ne:“25”}}) 查询年龄不是25岁的
- db.webs.find({ “age” : { $mod : [ 10 , 1 ] } }) 查询age%10==1的数据
- db.webs.find({“age”:{$in:[“25”,“18”]}}) 查询指定年龄的可用于直接匹配序号
- db.collection.find({ “key” : { $nin: [ 1, 2, 3 ] } }) 不属于,条件相当于key的值不属于[ 1, 2, 3 ]中任何一个。
- db.webs.find({age:{$exists:[“18”]}}) 查询webs中是否包含age建有就返回含有age的数据
- db.collection.find({ “key” : { $size: 1 } }) $size 数量、尺寸,条件相当于key对应的值的数量是1(值必须是数组)
- db.webs.find({$or:[{name:“张三”},{age:“18”}]}) 查询name=张三后者age=18的记录
- db.webs.find({“score.yy”:80}) 查询一个对象,
- db.webs.find().sort({age:-1}) -1(降序) 1(升序)
- db.webs.find().limit(4) 返回n条数据如果n=0返回所有数据
- db.webs.find().skip(3) 跳过前面n条数据返回后面的所有数据