• mongodb



    面向文档的数据库, NOsql数据库 ,非关系型,key-value(键值对) 方式存储的。
    一个文档就是一个json对象。使用javascript语言来操作。
    最大特点:在超大规模数据的存取数据速度非常快!(几十亿级别)
    特点:
    在处理大数据和高并发性能非常好。(目的就是为了这两个问题)
    易 于扩展,性能非常快,分布式存储和操作。
    适合做非事务型以及数据结构比较简单的数据:日志等,以数据存储为主。
    缺点:

    不支持事务和join连表操作。

    安装:
    1 创建一个目录和日志文件(放哪个位置都行)
    2 以管理员身份 打开cmd,运行mongod.exe,拖到cmd
    C:Userseric>E:3916mongodb20151105MongDBmongodb-win32-i386-2.0.3inmongod.exe --dbpath E:3916mongodb20151105MongDBmongodb-win32-i386-2.0.3data --logpath E:3916mongodb20151105MongDBmongodb-win32-i386-2.0.3log.txt --install
    all output going to: E:3916mongodb20151105MongDBmongodb-win32-i386-2.0.3log.txt ---->这样就说明安装成功了

    要输入三个参数
    1 --dpath
    2 --logpath
    3 --install

    --------------
    3 打开服务窗口管理:
    启动 mongodb服务
    启动之后:
    A:端口:27017
    B:还会开启一个web管理页面,监听的端口号:28017(+1000)。
    可以在浏览器这样访问
    localost:28017

    4 在cmd 窗口连接
    mongo.exe 拖到 cmd命令窗口
    E:3916mongodb20151105MongDBmongodb-win32-i386-2.0.3inmongo.exe
    MongoDB shell version: 2.0.3 --》服务器版本
    connecting to: test --》默认数据库


    说明这个客户端其实是一个js引擎,可以执行任何js语句。

    ----------------
    5 客户端提供了一套帮助系统,通过帮助就可以完成很多任务
    系统级别:help

    数据库级别:db.help()
    集合级别: db.集合名.help()
    方法级别: 查看一个方法有几个参数:db.集合名.方法名,如
    db.goods.find

    6 面向文档的数据库中的概念:
    mysql mongodb
    数据库 数据库
    表 集合
    记录 文档

    7 客户端中的db变量代表当前数据库
    db 显示当前数据库

    切换数据库 use

    8 mongodb 是一个 无模式 的数据库【文档模型自由,灵活】 意思就是说:无需创建数据库和表,而且集合中的字段随意加不用提前定义好
    扩展:甚至同一个集合中可以不完全不同的文档
    但是最好还是:同一种结构的文档放到一个集合中这样性能更好而且便于管理!

    使用mongodb完成 CRUB
    1 向商品数据库php39插入100件商品
    use php39
    for(var i=0;i<100,i++){

    db.goods.insert('goods_name':'goods_'+i;'shop_price':100xmath.random())
    }
    会为每条记录增加一个ID,一定是唯一的,是obect_id对象,不是自增的
    为了避免分布式存储数据时ID冲突
    2 查询
    db.goods.count()
    db.goods.find()

    3 删除一条记录 goods_name=goods_14
    db.goods.remove({'goods_name':'goods_14'})

    4 修改 goods_name=goods_15 价格为100

    var d=db.goods.findOne({'goods_name':'goods_15'})
    d.shop_price=100
    db.goods.save(d)

    --------------------
    5 取出所有价格小于50元的商品
    db.goods.find({'shop_price':{"$lt":50}})

    -------------------
    6 数据类型
    7 瞬间完成-》执行操作时没有返回值-》有些操作要必须知道返回值-》
    需要执行一个执行指令
    db.runCommand({getLastError:1})
    {
    'err':null,
    'updateExisting':true,
    'n':5,
    'ok':true
    }

    --------------
    8 总结:
    mongodb拥有的功能:基本的数据存储,索引,复制,分片,备份,还原等基本功能。
    没有的功能:事务,视图,存储过程,不支持join连表,触发器。

    9 分片:
    分布式存储(易于扩展)
    健康检查,数据沉余放丢失

    扩展:mysql 中有个 ndb 集群也是这个东西(大数据的分布式存储)
    扩展:mapReduce 编程模型:快速处理大数据。Map:把一个任何拆分【映射】:reuce:把多个任务的结果汇总统计。

    大数据:如何存,如何快速统计。

    ---------------------
    10 mongodb 地理空间索引

    -------------
    使用php 操作mongodb
    1 先安装扩展
    下载一个和本地php环境相对应的php_mongodb.dll扩展包
    A: php版本,是否TS,VC的版本,在phpinfo里看。
    B:D:serverphpext 放到这个目录
    C:修改php.ini添加一行
    extension=php_mongo.dll

    重启apahce,在PHPinfo可以看到.

    php操作代码:
    <?php

    $mongo=new MongoClient();

    //取出所有的商品
    $mongo->php39->goods->find();

    foreach($goods as $k =>$v){
    echo $v[$goods_name].'<hr/>';
    }

    //添加一条记录
    $mongo->php39->goods->insert(array(
    'goods_name'=>'tom',
    'shop_price'=>100,
    ));
    ?>

    世上无难事,只怕有心人......
  • 相关阅读:
    ThinkPHP-5.0.23新的RCE漏洞测试和POC
    利用DNS日志进行MySQL盲注
    Prometheus自动发现
    relabel_config
    Maven安装
    Redis安装
    Node.js安装
    MySQL-5.7安装
    设计模式【1】------>单例模式
    Java设计模式概念以及六大设计原则
  • 原文地址:https://www.cnblogs.com/gooderic/p/5971430.html
Copyright © 2020-2023  润新知