nodejs非关系型数据库mongodb

情到浓时终转凉″ 提交于 2019-12-16 01:59:01

数据库

  1. 为什么要学习Node.js

    • 理解为: Node.js是对js的一个扩展
    • Node.js是前端框架的底层
  2. 什么是数据库?

    • 存储数据的一个仓库
  3. 数据库分类?和它的代表

    • 关系型数据库 【 SQL 】
      • 代表: mysql
    • 非关系型数据库【 NOSQL 】
      • 代表: Mongodb
  4. 如何区分一个数据库属于哪一个类别

    • 经验: 有没有表, 有,那就是SQL , 没有,那就是NoSql
  5. 数据库构成

  • 关系型数据库
    • 数据库 -> 表 -> 行
  • 非关系型数据库
    • 数据库 -> 集合 -> 文档
  1. 总结:
    数据库功能是用来存储数据的。
    数据库分为关系系数据库和非关系型数据库(nosql)
    关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档。
    非关系型数据库文件存储格式为BSON(一种JSON的扩展)。

MongoDB

  1. 概念

    • 基于分布式文件存储的数据库
      • 分布式: git
  2. 存储类型: BSON

    • 什么是bson?
      • bson是json的超集, bson拥有json的所有,但是它有json没有的二进制类型
  3. 安装

    • MongoDB官网地址:
      https://www.mongodb.com/

      MongoDB下载地址:
      https://www.mongodb.com/download-center#community

      MongoDB for Windows 64-bit 适合 64 位的 Windows Server 2008 R2, Windows 7 , 及最新版本的 Window 系统。
      MongoDB for Windows 32-bit 适合 32 位的 Window 系统及最新的 Windows Vista。 32 位系统上 MongoDB 的数据库最大为 2GB。

    • 安装直接下一步

    • 记住了: 将compass可视化工具去掉

  4. 配置系统变量

    -需要以管理员身份运行cmd——》我的电脑属性——》高级系统设置——》环境变量——》系统变量里面的path,把bin安装的目录添加path里面,系统不一样会有些许差异。 C:\Program Files\MongoDB\Server\3.2\bin ,bin是命令文件目录,
    bin 文件下的mongo.exe负责使用数据库,mongod.exe负责开机,这俩最常用,还有数据还原,备份导入导出

    • MongoDB 4版本以上自动配置
  5. 配置数据库存储目录还有日志存储目录

    • 如果已经有data/log目录了就可以不做了。路径可以自己定
      - 1、在d盘建立一个文件夹mongodb,并且建立子目录db和log.
      - 2、在log目录下建立一个文件MongoDB.log ,后缀为.log.
      d:\mongodb\db、d:\mongodb\log, 分别用来存放数据库文件和数据库日志文件.
      - 3、把mongodb文件夹的只读属性去掉。
  6. 启动MongoDB

    • 1.以管理员身份运行cmd.exe,进入dos命令界面,执行下列命令,–logappend可省略,有日志了就追加,不会在新建
      mongod --storageEngine mmapv1 --dbpath “d:\mongodb\db” --logpath “d:\mongodb\log\MongoDB.log” --logappend
    • 执行后,就挂起了,需要另外开命令窗口,输入mongo或者mongo.exe测试是否启动成功
    • 输入exit或者ctrl+C可退出。
  7. 将Mongodb开机放到系统服务中,开机自动运行mongod.exe

    • mongod --storageEngine mmapv1 --dbpath “d:\mongodb\db” --logpath “d:\mongodb\log\MongoDB.log” --install --serviceName “MongoDB”
    • 这里MongoDB.log就是开始建立的日志文件,–serviceName “MongoDB” 服务名为MongoDB
    • 接着启动mongodb服务
    • NET START MongoDB 代替了配置好之后,重启电脑的操作
    • 打开任务管理器,可以看到进程已经启动。
    • 再次测试连接,输入命令 mongo
  8. 关闭服务和删除进程

    • 先 ctrl+c 关闭服务:net stop MongoDB

mongoDB使用

使用命令来操作数据库

db.web.save({“name”:“老李”}) 创建了名为web的集合,并新增了一条{“name”:“老李”} 的数据
db.web.insert({“name”:“ghost”, “age”:10}) 在web集合中插入一条新数据,如果没有web这个集合,mongodb会自动创建
save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。

db.users.remove({}) 删除users集合下所有数据
db.users.remove({“name”: “lecaf”}) 删除users集合下name=”lecaf”的数据
db.users.drop()或db.runCommand({“drop”:“users”}) 删除集合users
db.runCommand({“dropDatabase”: 1}) 删除当前数据库,注意 此处的1没加双引号。

db.web.update({“name”:“a1”}, {$set: {sex:”women”}},true,true)
修改name=a1的数据为sex=1,第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配所有符合条件的数据,第四个参数表示修改所有匹配到的数据

db.users.find() 查找users集合中所有数据
db.users.findOne() 查找users集合中的第一条数据
db.users.find().pretty() 格式化查询到的数据
$gt > ({ “key” : { $gt: value } }) 大于某个条件的数据
$lt < $gte >= $lte <=
Sort 排序 db.webs.find().sort({age: -1 })
Limit 类似截取 db.webs.find().limit( 2 )

  1. 其他

db.collection.find().limit(5)
语法1:db.collection.find({ “key” : value }) 查找key=value的数据.

mongoDB操作命令

  1. show dbs 查看数据库列表

  2. use 数据库名称 创建或是切换数据库

    1. 如果这个数据库没有,那么就是创建
    2. 如果有,那就是切换数据库
  3. db.集合名称[ 复数 ].save() // 创建一个集合,并且往这个集合添加一条数据

  4. db.集合名称[ 复数 ].insert() // 创建一个集合,并且往这个集合添加一条数据

  • save如果指定主键,那么就是修改
  • insert指定主键添加,会报错
  1. show collections 查看数据库下有几个集合
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!