数据库

存储在硬盘中的对数据进行统一组织与管理的仓库。

数据库分类

  • 关系型数据库
    MySQL、Oracle、DB2、SQL Server等,存储的全部是表
  • 非关系型数据库
    MongoDB、Redis等,键值对数据库

MongoDB

  • MongoDB是为快速开发互联网Web应用
    而设计的数据库系统。
  • MongoDB的设计目标是极简、灵活、作为Web应用栈的一部分。
  • MongoDB的数据模型是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSON。(BSON),它的结构是:MongoDB包含多个数据库,每个数据库又包含多个集合(collection),每个集合下包含多个文档,文档中存有数据。

MongoDB数据库的使用

  • 新版MongoDB不再支持32位操作系统,官网下载MongoDB后需要进行一系列环境配置,在此不做赘述,配置完成后可以在命令行通过mongo指令直接使用数据库,通过show dbs指令可以显示所有的数据库,初始情况下只有三个数据库:admin,config和local。

mongoDB增删改查操作

增加

use +名称的格式可以直接使用或创建新的数据库(有则使用,没有则添加),比如use tes,通过db 集合名.insert(文档)的格式可以为集合添加数据:db.tes.insert(),该方法接收一个对象或者对象数组

db.tes.insert({
 name:"tom",
 age:20,
 score:90
 })

删除

  • db.collections.remove(),根据条件删除文档,默认根据条件删除多个,可以接受两个参数,第二个参数默认为false,表示删除全部符合条件的文档
  • db.collections.deleteOne()删除第一个符合条件的文档
  • db.collections.deleteMany()删除全部符合条件的文档
    特别的还有删除当前集合的方法(集合中的数据连带删除)
    htmldb.stus.drop() 删除当前数据库的方法
    db.dropDatebase()删除当前正在使用的数据库
db.stus.remove({"age":21})//第二个参数默认为false
db.stus.remove({"age":21},true)//表示只删除一个
db.stus.drop()//删除stus这一集合

修改

db.collections.update()用新对象替换旧对象
db.collections.updateOne()替换第一个符合条件的文档
db.collections.updateMany()替换多个符合条件的文档

db.stus.update({name:"tom"},{name:"tom",age:33});
db.stus.updateMany({name:"tim"},{$unset:{name:"jerry"}})

$unset表示不删除对象而只是删除文档的这个属性,类似还有$set,表示仅仅只替换对应的属性

查找

db.stus.find(),根据条件查找文档,参数传入一个对象
db.stus.findOne(),查找第一个符合条件的文档

db.stus.find({name:"tom"})
db.stus.find()//显示全部
db.stus.find().length()//获取文档的个数