mongodb
MongoDB是一个基于分布式文件存储的数据库,由C+ +语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
-
下载 安装帮助
安装包链接:https://pan.baidu.com/s/1UmeUhduxGLrWrQMWOv_pog
提取码:27ml -
配置数据文件存储位置:
找到安装目录 D:\web-software\mongo\data\db
data和db目录要手动创建
- 服务端启动:
找到安装目录> mongod --dbpath 路径 回车
- 客户端启动:
找到安装目录> mongo 回车
- 环境变量
为了在任意盘符下去都可以启动 mongod服务端|mongo客户端,把安装目录添加到环境变量
mongodb数据库的相关命令:
常看所有的数据库 : show dbs
切换/创建数据库:use student
删除数据库: db.dropDatabase()
创建集合:db.createCollection(‘表名’,{配置}) ===> db.bbb.isCapped()
查看集合:db.getCollectionNames() / show collections
插入数据:db.user.insert({})
更新数据:db.user.update({条件},{$set:{age:25}},false,true)
查询数据:db.user.find({})
db.user.find({},{age:1,_id:0})
db.user.find({}).skip(3).limit(3)
排序: db.user.find().sort({age:1})
mongodb命令行操作 声明式 | obj.api()
库操作
查: show dbs
db 查看当前库
建: use 库名 没有建,有就切换
删: db.dropDatabase() 删除当前库
集合(表)操作
建:db.createCollection('表名',{配置})
//配置:{size:文件大小,capped:true,max:条数|文档数} capped定量
//db.表(集合).isCapped() 返回 true/false 是否是定量
查:show collections / db.getCollectionNames()
删:db.表|集合.drop()
文档(row)操作
增
db.集合.save({}) //添加一条
db.集合.insert({}) //添加一条
db.insertOne({}) //添加一条
db.集合.save([{},{}]) //多条
db.集合.insert([{},{}]) //多条
//insert 相同ID字段不会进行插入更改 save会
删
db.集合.deleteOne({要删数据条件描述}) //一条
db.集合.remove({},true) //一条
db.集合.remove({要删数据条件描述}) //多条
db.集合.remove({}) //清空表
改
db.集合.udpate({查询条件},{替换条件},插入boolean,全替换boolean)
//将所有的用户名为李四的年龄全都设置为20岁
db.user.update({username:"李四"},{$set:{age:20}},false,true)
第三个参数:如果更新的数据没有的话则插入,默认不插入
第四个参数:默认只更新一条数据,如果要批量更新设置true
查询条件
{age:22} age == 22
{age:{ $gt:22 }} age > 22
{age:{ $lt:22}} age < 22
{age:{$gte: 22}} age>=22
{age:{$lte:22}} age<=22
{age:{ l t e : 122 , lte:122, lte:122,gte:22}} age<=122 && age>=22
{$or:[{age:22},{age:122}]} 22 or 122
{key:value,key2:value2} value && value2
{name:/正则/}
替换条件
{$set:{数据}}
{inc:{age:5}} //在原来的基础上年龄递增5
查
所有:db.集合.find(条件)
条数: db.集合.find().count()
去重:db.集合.distinct(key).length
db.集合.find({条件},{指定要显示列区域})
指定要显示列区域
username:1 显示这个区域
username:0 不显示这个区域
_id 是默认显示
排序
db.集合.find().sort({key:1,key2:-1}) //升
db.集合.find().sort({key:-1}) //降
限定
db.集合.find().limit(number) //限定
db.集合.find().skip(number) //跳过
db.集合.findOne()//找第一个
db.集合.find().limit(1) //查询第一条
mysql vs mongodb
mysql | mongoDb | |
---|---|---|
database(库) | database(库) | |
table(表) | collection(集合) | |
row(一条数据) | document(文档) | |
column(字段) | field(区域) | |
二维表,每次存到磁盘 | json,存在缓存,关闭时存到磁盘 | 存储方式 |