全栈工程师 07 笔记

2016-08-15  本文已影响28人  景岳

MongoDB数据库

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
  • 面向集合存储,易存储对象类型的数据。

在mongodb中基本的概念是文档、集合、数据库,下表Mongo中的一些概念

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接,MongoDB不支持
primary key primary key 主键,MongoDB自动将_id字段设置为主键

一、数据库排行榜前10 http://db-engines.com/en/ranking

  1. Oracle 大型项目使用商业收费的
  2. MySQL 集群
  3. Microsoft SQL Server
  4. MongoDB 文档存储
  5. PostgreSQL
  6. DB2
  7. Cassandra
  8. Microsoft Access
  9. SQLlite
  10. Redis

二、MongoDB数据库安装与操作
MongoDB 数据库官网 http://www.mongodb.com
MongoDB数据库下载地址https://www.mongodb.com/download-center?jmp=nav#community

mongoDB的安装步骤

  1. 到官网下载MongoDB数据库压缩包到服务器上


    wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.8.tgz* -c 参数 :支持断点续传
  2. 解压刚刚下载的mongoDB压缩包 运行
    //解压缩
    tar zxvf mongodb-linux-x86_64-ubuntu1604-3.2.8.tgz
    //重命名
    mv mongodb-linux-x86_64-ubuntu1604-3.2.8 mongodb
    //切换目录
    cd mongodb
    //创建数据目录
    mkdir jingyue_db
    //运行
    ./bin/mongod --dbpath=./jingyue_db
    解释:
    ./bin/mongod //安装执行文件
    --dbpath=./jingyue_db //安装数据库路径
    jingyue_db //自己创建专门用来放数据库的文件

  3. 编写开启mongoDB的shell脚本
    vim ~/mongodb/bin/mongodb
    内容:
    #!/bin/bash
    sname="/home/scort/mongodb/bin/mongod --dbpath=/home/jingyue/mongodb/db_data"
    case $1 in
    start)
    $sname &
    ;;
    stop)
    pkill mongod
    ;;
    esac
    保存退出!
    //添加执行权限
    chmod 750 mongodb
    //运行//开启
    /home/jingyue/mongodb/bin/mongodb start
    //关闭
    /home/jingyue/mongodb/bin/mongodb stop


mongoDB的增、删、改、查

  1. 进入数据库命令,MongoDB的默认端口:27017
    /home/scort/mongodb/bin/mongo
  2. 创建数据库

    新创建的并不在数据库的列表中, 要显示它,我们需要向 数据库插入一些数据
    use test //use 自定义集合名也可称库名
    db;

  3. 查看数据库使用情况查询
    show dbs;
  4. 使用 insert() 方法向集合中插入文档
    //insert插入单条数据
    db.test.insert({"xingqu":"计算机"});
    // insertMany插入多条数据,键名(key)的分号可加可不加,
    db.test.insertMany([{name:"jing"},{name:"yue"},{name:"xiaoyueyue"}]);
    //插入多条数据,使用语法
    for(i=0;i<100;i++)db.test.insert({name:"jingyue"}) // 插入了100条数据
  5. 查询数据
    db.test.find();
    db.test.find();
    db.test.find().toArray();
    db.test.find().toArray();
    db.test.find().pretty();
    db.test.find().pretty();
    算出test表有多少条数据
    db.test.find().count();
    指定不用查出来的数据
    db.test.find().skip({name:'jing'});//包含{name:'jing'}不用查
    指定查出的条数
    db.test.find().limit(10);//查出十条
    查看索引
    db.test.getIndexes();
    查询当前版本号
    db.version() // 3.2.8
    查看当前库所有集合名
    //新创建的集合并不在数据库中, 要显示它,我们需要向集合里插入一些数据
    db.getCollectionNames(); // [ "test" ]
    show collections; // test
    查看当前库
    db.getName(); // test
    切换集合
    use teacher;
    db.getName(); // teacher
  6. 删除
    删除数据库
    db.dropDatabase();
    删除数据表
    db.test.drop();
    删除数据
    db.test.remove({name:'jingyue'});//删除test表中name为jingyue的数据
  7. 更新Update
    update() 方法用于更新已存在的文档。语法格式如下:
    db.test.update({name:'jing'},{$set:{name:'yue'}},false,true)
    参数说明:

**第一个参数 **: update的查询条件,类似sql update查询内where后面的。
第二个参数: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
**第三个参数 **: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
第四个参数: 可选,默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
第五个参数:可选,抛出异常的级别,一般用不到。

**实例:**
    //此处有两个参数第一个参数表示查找的地方,第二个表示要改的地方        
     db.test.update({name:'jing'},{sex:12});
    // 此处表示若更改则会把X,Z的值覆盖 使用set能够避免覆盖更改一条不存在的数据的时候
    // 默认插入到数据库中 
     db.test.insert({x:100,y:100,z:100});
     db.test.update({z:100},{$set:{y:99}}); 
    //此处增加TRUE 表示增加一条不存在的数据 
     db.test.update({name:'yue'},{sex:18},true);

express 框架

nodejs模块: https://www.npmjs.com

Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用,和丰富的 HTTP 工具。
使用 Express 可以快速地搭建一个完整功能的网站。
Express 框架核心特性:

全局安装

sudo npm install -g express-generator
其中 -g 参数:全局

在当前文件夹下生成blog项目

 express -e blog

进入blog项目目录(以下操作都在这个目录下进行)

 cd blog

安装所有依赖包

 npm install
安装完后会出现这个目录

开启项目

npm start
开启后显示

浏览器输入网址加端口号,默认端口号为3000

192.168.23.128:300
网页显示

完成以上步奏说明框架已搭好,可以开发了。


扩展

在Linux系统里,MongoDB 服务器启动都需要输入一长串代码,我们来制作一个sh文件,每次只需要启动下文件就好(mongo.sh)

    #!/bin/bash
    cd /home/jingyue/mogondb/bin/ ./mongod --dbpath=../test_db(mongodb数据库)

执行 mongo.sh

 sh mongo.sh
上一篇 下一篇

猜你喜欢

热点阅读