mongodb
非关系型数据库,又叫nosql,缓存型,使用场景多是解决大规模数据集合多重数据种类
找到安装目录\Server\4.0\bin\ -> cmd回车-> mongod 回车
—>
mongod --dbpath c:\data\db
就会出现一个27017 ,你在浏览器里测试 localhost:27017 回车 出现一句英文就可以了。
这个27017的窗口不能关闭 ,另开一个黑窗口,并且在第二个黑窗口输入 mongo 就是连接mongodb数据库
data和db目录要手动创建
- 服务端启动: 可选
找到安装目录\Server\4.0\bin\ -> cmd回车-> mongod 回车
一般开启会默认启动
- 客户端启动:
找到安装目录\Server\4.0\bin\ -> cmd回车-> mongo 回车
- 环境变量 可选
为了在任意盘符下去都可以启动 mongod服务端|mongo客户端,把安装目录添加到环境变量
mysql vs mongodb
mysql | mongoDb | |
---|---|---|
database(库) | database(库) | |
table(表) | collection(集合) | |
row(一条数据) | document(文档) | |
column(字段) | field(区域) | |
二维表,每次存到磁盘 | json,存在缓存,关闭时存到磁盘 | 存储方式 |
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)
查询条件
{age:22} age == 22
{age:{KaTeX parse error: Expected 'EOF', got '}' at position 6: gt:22}̲} age > 22 {a…lt:22}} age < 22
{age:{KaTeX parse error: Expected 'EOF', got '}' at position 7: gte:22}̲} age>=22 {ag…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:/正则/}替换条件
{ s e t : 数 据 , set:{数据}, set:数据,inc:{age:1}}
查
所有:db.集合.find(条件)
条数: db.集合.find().count()
去重:db.集合.distinct(key)
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) //查询第一条