Node.js的基本使用3

发布时间:2019-07-13 11:35:13编辑:auto阅读(1396)

    koa(扩展知识, 建议学习)

    1. koa是express超集(进阶版)

    前后端分离和耦合概念介绍

    1. 面向过程 -》 面向对象 --》 面向服务

    数据库 Node.js mongodb(bson json的超集)

    分类:
    关系型数据库: MySql
    非关系型数据库: MongoDB

    MongoDB安装

    1. 环境变量设置
    2. 系统服务添加有问题
    3. 安装
      系统不太支持高版本、 降版本 3.2 3.4

      写在mongodb时候, 记得删除之前创建好的文件夹

    4. 每次启动
      最好先
      net start MongoDB
      在:
      mongo

    问题?MongodDB

    1. MongoDB的存储数据的形式bson

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

      MongoDB操作命令

    2. MongoDB连接地址: mongodb://127.0.0.1:27017
    3. use db_name
      举例:
      创建: 我们的数据库中没有 你要切换的数据库, 那么即为创建
      切换: 数据库已经存在, 我们从一个数据库切换到另一个数据库
    4. show dbs
      将我们本地的所有数据库列出来
    5. db/db.getName()
      查看当前使用的数据库
    6. MongoDB
      数据库 -》 集合 -》 文档
      针对数据库(database)的操作

      1. help
      2. use db_name
      3. db||db.getName()
      4. db.states()
      5. db.dropDatabase()
      6. show dbs
      7. db.versions()
      8. db.getMongo()

      针对集合(collections)的操作

      (1)创建一个集合
      db.createCollection("collName", {size: 20, capped: true, max: 100});
      db.collName.isCapped(); //判断集合是否为定容量
      (2)得到指定名称的集合
      db.getCollection("account");
      (3)得到当前db的所有集合
      db.getCollectionNames();
      (4)显示当前db所有集合的状态
      db.printCollectionStats()

      针对文档(docuemnt)的操作

      1. 添加
        1. db.coll_name.save({}) 推荐
        2. db.coll_name.insertOne({})
        3. db.coll_name.insert({})
      2. 查询
        db.coll_name.find(arg1,arg2) 所有的
        参数解释:
        arg1 表示的是匹配条件
        arg2 表示将来输出的内容匹配 0 表示不要, 1表示要

        举例:
        db.movies.find({year:'1993'},{_id:0,title:1})

        升序
        举例:
        db.movies.find({year:'1993'},{_id:0,title:1}).sort({year:1})

        降序
        举例
        db.movies.find({year:'1993'},{_id:0,title:1}).sort({year:-1})

        截取 某条以前 limit
        db.movies.find({year:'1993'},{_id:0,title:1}).limit(5)
        截取 某条以后 skip

        优先级:
        sort>skip>limit

        $or表示或者, 可以匹配多个条件
        db.teachers.find({$or:[{age:10},{age:40}]})

        findOne() 第一条数据

        db.teachers.findOne()

        count() 计数

        举例:
        db.movies.find({year: {$gt:"1993"}},{_id:0,title:1,year:1}).count() //16

      3. 删除
        db.coll_name.remove({})
      4. 修改
        db.coll_name.update(arg1,arg2,arg3,arg4)
        参数解释:

        1. arg1: 匹配条件
        2. arg2: 修改的具体内容
        3. arg3: false / true 匹配几条 false 一条 true 多条
        4. arg4: false / true 修改几条 false 一条 true 多条
          $set 直接设置
          db.teachers.update({age:120},{$inc: {age: 80}},false,true)
          $inc 在当前基础上增加多少
          db.teachers.update({age:120},{$inc: {age: 80}},false,true)

          注意:db.students.update({name:'lwj'},{$inc;{age:10}},true,false)//只能修改第一条,一句话来说,虽然匹配多条但修改一条就是一条
          db.students.update({name:'lwj'},{$inc:{age:10}},true)//同上
          db.students.update({name:'lwj'},{$inc:{age:10}},false)//同上
          db.students.update({name:'lwj'},{$inc:{age:10}},false,true)//这个自然是全都修改了

    作业:

    1. 笔记整理
    2. 练习 (将所有的命令走一遍)
    3. 预习mongoose

关键字