zoukankan      html  css  js  c++  java
  • 自学MongoDB(1)

    MongoDB是nosql(非关系型数据库)中的一种,面向文档的数据库,介于传统的结构化数据库(关系型数据库)与非关系型数据库(文件储存)之间的一种,具有数据结构非常松散和非常灵活的特点;常用于存储分布式文件,以便与大数据处理
    Linux + MySQL + Apache + PHP = lamp

    优势:免费 + 开源 + 官方技术支持

    需要理解的概念: MongoDB Mongo 索引 集合 复制集 分片 数据均衡

    搭建简单的单机服务

    搭建具有冗余容错功能更的复制集

    搭建大规模数据集群

    完成集群的自动部署

    使用:
    最基本的文档的读写更新删除;
    各种不同类型的索引的创建和使用
    复杂的聚合查询
    对数据及进行分片,在不同的分片中维持数据的平衡
    数据的备份与恢复
    数据迁移

    简单运维:
    常见故障:单节点失效,如何恢复工作?
    数据库被意外杀死如何进行数据恢复?
    数据库发生拒绝服务时如何排查原因?
    数据库磁盘快满时怎么处理?

    需要的网站:
    www.mongodb.org
    官网
    www.mongoing.com
    国内官网
    docs.mongoing.com
    中文文档
    gtiub.com/MongoDB
    源码下载

    数据库的概念:
    有组织的存放数据;
    按照不同的需求进行查询;
    SQL数据库:支持SQL语言的数据库.(oracle MySQL);
    nosql数据库:不支持SQL语言的数据库(Redis MongoDB)

    SQL数据库 NOSQL数据库
    ↓ ↓
    实时一致性 简单便捷
    事 务 方便扩展
    多表联合查询 更好的性能
    特色:
    1.没有数据结构限制:
    没有表结构的限制,每条记录有不同的结构
    业务开发便捷
    SQL数据库需要事先定义表结构在使用
    2.完全的索引支持
    单键索引 多键索引
    数组索引
    全文索引
    地理位置索引
    3.方便的冗余和扩展
    复制集保证数据安全
    分片扩展数据规模

    4.良好的支持
    完善的文档
    齐全的驱动支持

    MongoD:数据库部署
    mongo:链接MongoDB的客户端
    mogonexport和mongoimport:MongoDB的导入导出
    mogondump和mogonrestore:二进制数据的导入导出,不能被读取,用来备份
    mogonoplog:操作日志得回放 数据集合
    mogonstat:查看MongoDB服务器的各种状态

    小结:
    MongoDB由"数据库"组成,数据库由集合组成,集合由文件组成.域组成了文档,文档可以被索引从而提高了查找和排查的性能,
    MongoDB读取数据库是通过游标进行的
    (表换成集合,行换成文档,列换成域)

    MongoDB的使用:
    第一步:
    在根目录下创建两个文件夹data和log;
    第二步:
    在data文件夹下创建文件夹db;
    第三步:/* 命令提示符要在管理员的情况下 */
    在在命令提示符里输入mongod --dbpath g:datadb(注意:C:MongoDBin>进入到下载的文件夹下的bin)运行MongoDB服务器
    E.G:
    C:MongoDBin>mongod --dbpath g:datadb
    第四步:/* 命令提示符要在管理员的情况下 */
    在在命令提示符里输入mongo.exe执行MongoDB连接MongoDB
    E.G:
    C:MongoDBin>mongo.exe

    学习:
    创建数据库: use 数据库名
    观看所有数据库: show dbs
    查看数据库下的表: show tables
    删除数据库: use 数据库名 db.dropDatabase()
    删除集合: use 集合所在数据库名 db.集合名.drop()
    添加集合: use 数据库名 db.createCollection("集合名")
    添加文档: use 数据库名(写在哪个数据库就写哪个数据库名) db.集合名.insert({name:"zhang",age:"22"})
    更新数据库(修改): db.集合名.up({'name':"zhang"},{$set {'name':"张"}}) save是替换原来的集合,写法类似添加
    删除文档: db.inventory.deletemany({'name':"张"})//删除name等于张的所有文档
    db.inventory.deleteone({'name':"张"})//删除name等于张的一个文档
    db.inventory.deletemany({})//删除集合下的所有文档
    查询文档: db.集合名.find() 可以加 .pretty查看,会更加详细
    多条件使用逗号分开

    E.G({'NAME':"张",'age':"22"})

  • 相关阅读:
    事务与锁的一些总结
    NYOJ 73
    NYOJ 456
    Sleep函数
    NYOJ 488(素数环)
    NYOJ 308
    NYOJ 27
    NYOJ 325
    NYOJ 138
    求两个或N个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法
  • 原文地址:https://www.cnblogs.com/hexi707/p/8555682.html
Copyright © 2011-2022 走看看