day1
NODEJS
数据库mangodb
1.定义
是一个基于分布式文件存储的非关系型数据库(NoSQL);存储格式为BSON
2.特点
高性能、易部署、易使用,存储数据非常方便。
3.优点
- 面向对象存储,易存储对象类型的数据
- 模式自由
- 支持动态查询
- 支持完全索引,包含内部对象
- 支持查询
- 支出复制和故障恢复
- 使用高效的二进制数据存存储,包括大型对象(如视频等)
- 自动处理碎片,(垃圾回收机制),以支持云计算层次的扩展性
- 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言
- 文件存储格式为BSON(一种JSON的拓展)
引申
NoSQL
定义:非关系型数据库。主要用于超大规模的数据存储(抖音,facebook);
组成:数据库=>集合(collection)=>文档(document);
分布式
分布式算法指的是讲一个大型的任务进行分解,将由每一个小任务的执行结果组合起来,返回一个整体。
BSON
定义:BSON是一种类似json的二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象**,但是**BSON有JSON没有的一些数据类型,如Date和BinData类型。
安装MongoDB
-
安装:默认(complete)即可,注意:不要勾选可视化文件。
-
安装可视化工具Robo 3T
配置MongoDB
目的:为了在dos窗口的任何目录下都能执行mango的命令。
-
设置环境变量
-
D盘建立文件夹mongodb,并建立子目录db和log,在log下建立一个文件MongoDB.log,把mongodb文件夹的只读属性去掉
-
管理员cmd,执行 mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log"
-
原来cmd窗口不关闭,以管理员再开一个cmd窗口,输入mongo或者mongo.exe。出现connecting to:text 说明测试通过。
-
将MongoDB安装为windows服务: 管理员cmd进入bin,执行mongod --storageEngine mmapv1 --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\MongoDB.log" --install --serviceName "MongoDB",之后执行NET START MongoDB,任务管理器查看进程已经启动。
-
再次mongo测试连接
MongoDB基础使用
-
常用命令
-
show dbs显示数据库列表
-
use dbname 创建数据库,如果数据库存在,则切换到此数据库。创建的数据库并不在数据库的列表中,要显示它就需要向数据库dbname插入一些数据
-
show collections 显示数据库中的集合
-
增加数据方式一: db.web.save({"name":"lisi"}) 创建名为web的集合,并新增一条数据
-
增加数据方式二:db.web.insert({"name":"zhangsan"})
-
使用主键增加数据:eg:{_id:ObjectId("ddjsdj34424424csf"),"name":"zhaoliu"},主键相同时,save会修改,insert会报错。
-
删除数据
db.users.remove({}) 删除users集合下的所有数据
db.users.remove({"name":"lisi"}) 删除users集合下的name="lisi"的数据
db.users.drop()或db.runCommand({"drop":"users"}) 删除 集合users
db.runCommand({"dropDatabase":1}) 删除当前数据库
-
查找数据
- db.users.find() 查找users集合中的所有数据
- db.users.findOne() 查找users集合中的第一条数据
- db.users.find().pretty() 格式化查询到的数据
- 主要操作符:
lt : < ;
lte <= ;
- Sort 排序 ;eg: db.webs.find().sort({age:-1}) 按照年龄倒序排序
- Limit 类似截取 eg:db.webs.find().limit(2) 截取索引0到2的数据(不包括索引2)
-
修改数据
- db.web.update({"name":"a1"},{$set:{sex:"women"}},true,true) 修改name=a1的数据为sex=women,第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配所有符合条件 的数据,第四个参数表示修改所有匹配到的数据
MongoDB高级命令
-
-
-