mongodb
数据库
1.什么是数据库?
- 存储数据的一个仓库
2.数据库的分类,以及它的代表
- 关系型数据库【SQL】
代表:mysql - 非关系型数据库【NOSQL】
代表:nosql
3.如何区分一个数据库属于哪个类别
- 经验:根据有无表来区分;有表是SQL,没有表是NOSQL
4.数据库构成
- 关系型数据库
- 数据库 ->表->行
- 非关系型数据库
- 数据库->集合->文档
MongoDB
1.概念:基于分布式文件存储的数据库
- 分布式算法指的是将一个大型的任务进行分解,将每一个小任务的执行结果组合起来,返回一个整体
-优点:
- 面向集合存储,易存储对象类型的数据。
- 模式自由。
- 支持动态查询。
- 支持完全索引,包含内部对象。
- 支持查询。
- 支持复制和故障恢复。
- 使用高效的二进制数据存储,包括大型对象(如视频等)。
- 自动处理碎片,以支持云计算层次的扩展性
- 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
- 文件存储格式为BSON(一种JSON的扩展)
2.常用命令:
- 删除数据
创建名为web的集合,并新增数据:
db.web.save({"name":"老李"});db.web.insert({“name”:"老李"}
区别 :
若新增的数据主键已存在,save()会修改原来的内容为新内容,insert()不会操作并提示错误
- 删除数据
db.users.remove({})
删除users集合下的所有数据
db.users.remove({"name": "lecaf"})
删除users集合下name=”lecaf”的数据
db.users.drop()或db.runCommand({"drop":"users"})
删除集合users
db.runCommand({"dropDatabase": 1})
删除当前数据库
- 查找数据
db.users.find()
查找users集合中的所有数据
db.users.findOne()
查找users集合中的第一条数据
db.users.find().pretty()
格式化查找users集合里的所有数据
$gt : > ; $lt < ; $gte >= ; $lte <=;
排序:db.webs.find().sort({age:-1})
截取:db.webs.find().limit(2)
注意: 若取最后两条数据,可以先倒序再截取
- 修改数据
db.web.update({"name":"a1"}, {$set: {sex:”women”}},true,true)
参数一:查找条件;
参数二:修改内容;注意:主键不可修改;
参数三:表示匹配所有符合条件的数据;
参数四:表示修改所有匹配到的数据,若为false,则为搜索到的第一条数据