设为首页 收藏本站
查看: 1816|回复: 0

[经验分享] node.js零基础详细教程(6):mongodb数据库操作 以及导入导出

[复制链接]

尚未签到

发表于 2017-12-14 20:35:46 | 显示全部楼层 |阅读模式
  第六章 建议学习时间4小时  课程共10章
  学习方式:详细阅读,并手动实现相关代码
  学习目标:此教程将教会大家 安装Node、搭建服务器、express、mysql、mongodb、编写后台业务逻辑、编写接口,最后完成一个完整的项目后台,预计共10天课程。
  数据库
  数据库管理结构,一般分为两种:B/S架构   C/S架构。
  B/S架构:  Browser/Server,浏览器/服务器模式,即通过浏览器和服务器端的数据库进行交互
  C/S架构:  Client/Server,客户端/服务器模式,即通过客户端和服务器的数据库进行交互(我们使用的cmd命令行就可以算是一个客户端)
  数据库根据数据结构分为:关系型数据库和非关系型数据库
  关系型数据库就如一般很规整的表格,可以根据横向纵向去定位某条数据,如下图
DSC0000.png

  一般的数据库都是关系型数据库 ,如 mySQL,oracle
  而非关系型数据库是不能通过横向纵向去定位一条数据,它的结构更像是一个数组里放了很多个json数据,如下图
DSC0001.png

  我们即将学习的mongodb就是非关系型数据库
  当下比较火的数据库有:oracle、mySQL、SQL Server
  相比这些数据库,mongodb有体积小、能方便快捷的操作,很适合中小型项目的快速开发
  而且它可以很好的配置node.js使用  (node.js也可以操作其他的数据库,以后有时间会单独给大家介绍  node.js操作 mySQL)
  mongodb安装
  1.在官网上下载所需的安装软件
  本课程软件下载 链接:http://pan.baidu.com/s/1kVPxBJT 密码:uziu
  下载地址:https://www.mongodb.com/download-center#community
  根据所需下载相应版本的mongodb安装包
DSC0002.png

  双击安装包后,点击运行
DSC0003.png

  进入到mongodb的安装页面,点击Next进行下一步
DSC0004.png

  选择同意后,点击Next进行下一步
DSC0005.png

  在这里不建议改变安装目录,直接点击Complete进行下一步
DSC0006.png

  点击Install进行安装
DSC0007.png

  等待安装的进度条完成
DSC0008.png

  安装的进度条完成之后,会进入完成页面,点击Finish 就完成了mongodb数据库的安装
DSC0009.png

  完成已上为步骤,就安装成功了
  2.检测mongodb是否安装成功,并配置启动命令
  在mongodb的安装目录的bin目录下,打开cmd命令行,输入命令 ‘ mongod –help ’出现下图现在这安装成功
DSC00010.png

  设置数据和日志的储存位置和配置mongodb服务
  (1)设置数据文件和日志文件储存位置
  按自己的爱好设置文件的储存位置,本安装文档的储存位置设置在E盘,目录如下
  E:\MongoData
  ├─data   #MongoDB数据库中的数据的储存位置
  └─log    #MongoDB数据库中的日志的储存位置
  └─mongodb.log   # MongoDB数据库中的日志的储存文件   (创建方式:创建一个txt,把后缀名改为log)
  (2)配置mongodb服务
  1/设置mongodb的环境变量
  计算机>右键>属性>高级系统设置>环境变量>找到系统变量中的path变量
  向path变量的结尾处添加mongodb的安装目录下bin目录的地址(如果原来的path路径后面没有分号,需要添加一个英文的分号再添加mongodb的目录)
  如果按本文档安装的mongodb安装目录下bin目录为:
  C:\Program Files\MongoDB\Server\3.4\bin
DSC00011.png

  设置完成后依次点击确定,就设置好了mongodb的环境变量了
  2/安装mongodb服务
  第一步:按照设置的储存位置,修改下面的命令
  (ps:如果是按本文档设置的储存位置,不用在做更改)
  

mongod --logpath "E:\MongoData\log\mongodb.log" --logappend --dbpath "E:\MongoData\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install  

  #命令中字段的说明
  ***  --logpath   指定MongoDB日志文件的存储路径,注意是指定文件不是目录
  ***  --logappend  使用追加的方式写日志
  ***  --dbpath   指定数据库数据的存储路径
  ***  --directoryperdb  每个DB都会新建一个目录
  ***   --serviceName   指定服务名称
  ***  --serviceDisplayName  指定服务名称,有多个mongodb服务时执行。
  ***  --install  指定作为一个Windows服务安装。
  第二步:在开始处用管理员身份打开cmd命令行,输入上面第一步修改好的指令回车(ps:一定要以管理员身份运行),(运行完成没有任何错误提示,表示设置成功)
DSC00012.png

  第三步:启动mongodb服务
  Net start MongoDB
DSC00013.png

  第四步:关闭mongodb服务
  Net stop MongoDB
DSC00014.png

  mongodb操作
  管理员身份运行cmd,然后执行 mongo,进入mongodb的命令状态
DSC00015.png

  show dbs 显示当前的数据库,前面两个是自带的,后面两个是我自己创建的(大家第一次使用时只有前面两个数据库)
DSC00016.png

  use 数据名    切换数据库 或 创建新的数据库,  下面我创建了一个名为demo3的数据库
DSC00017.png

  db.createCollection("表名字")   向数据库里面添加表  ,下面 创建了一个表 t1
DSC00018.png

  db 显示当前正在使用的数据库
  show tables 显示数据库下的表  
DSC00019.png

  再创建一个表 t2
DSC00020.png

  db.表名.drop()  用来从数据库中删除一个表
  下图命令删除了 t1表,返回true表示删除成功,再显示表的时候 t1就没有了
DSC00021.png

  db.dropDatabase() 删除当前正在使用的数据库
DSC00022.png

  上图删除了 demo3, 然后显示数据库的时候就没有demo3了
  我们重新创建 demo3数据库,然后插入 t1表,然后插入数据
  插入数据  db.表名.insert({});   参数中传入json数据,当插入成功以后,系统会自动给数据添加一个独一无二的 _id
  使用 db.表名.find()查看数据
DSC00023.png

  查询的时候可以带参数,传入查询的 json即可。下面我们先添加了两条数据(注意:添加的数据name 分别为 zhangsan1  、 zhangsan2,插入不同值方便后面使用),然后实现了带参数和不带参数的查询,结果不同
DSC00024.png

  修改数据 update({修改的条件},{修改器:{修改内容}},第三个参数,第四个参数)
  修改器:  $set 修改    $unset删除字段  $inc 当于编程语言中的 “+=”
  第三个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  第四个参数 ,默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  下面我们来修改一条数据,修改器使用 $set
  运行后下面代码后,我们发现 name为zhangsan的数据中的 age被修改为了50  (原来是25)
DSC00025.png

  删除数据的字段,使用 $unset
  下面代码删除了 name为zhangsan 的数据的 age属性 (age后面的属性值任意写,因为是删除,写多少都没有意义,但需要写一个json格式)
DSC00026.png

  +=  某条数据,使用$inc  
  下面代码将 name 为 zhangsan2的数据的  age上叠加10 ,(原来是25,执行以后变成了 35)
DSC00027.png

  Mongo中支持使用 js代码,包括申明变量、循环等等
  下面的循环插入10条数据。(虽然提示 nInserted:1 ,但已经插入了10条数据)
DSC00028.png

  查询就可以看到这10条数据了。
DSC00029.png

  查询json支持高级筛选方式   
  $lt  小于      <
  $gt  大于      >
  $gte 大于等于  >=
  $lte 小于等于  <=
  如:
  db.t1.find({age:{$lt:5}})   就可以查找age小于5的全部数据
  db.t1.find({age:{$lt:5,$gt:1}})   就可以查找age小于5大于1 的全部数据     (多个筛选条件之间使用逗号分隔    )
DSC00030.png

  导入导出
  导出:mongoexport可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。

  、语法:
        mongoexport -d dbname -c collectionname -o file --type json/csv -f field
        参数说明:
            -d :数据库名
            -c :collection名
            -o :输出的文件名
            --type : 输出的格式,默认为json
            -f :输出的字段,如果-type为csv,则需要加上-f "字段名"
    、示例:
        mongoexport -d mongotest -c users -o D:/users.json --type json -f  "_id,user_id,user_name,age,status"  导入:

、语法:
        mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field
        参数说明:
            -d :数据库名
            -c :collection名
            --type :导入的格式默认json
            -f :导入的字段名
            --headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
            --file :要导入的文件
   、示例:
        mongoimport -d mongotest -c users --file D:/users.json --type json  基本的操作就讲这么多,希望大家把上面的命令都写完。
  明天我们讲解:node.js操作mongodb,及操作方法的封装

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424152-1-1.html 上篇帖子: mongodb 3.4分片复制集配置 下篇帖子: 刘小吉
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表